<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Martin Bouška &#187; &#187; php</title>
	<atom:link href="https://www.bouska.biz/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bouska.biz</link>
	<description>... něco málo z IT světa</description>
	<lastBuildDate>Mon, 09 Jun 2025 08:02:54 +0000</lastBuildDate>
	<language>cs-CZ</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.3</generator>
	<item>
		<title>Billing System</title>
		<link>https://www.bouska.biz/billing-system/</link>
		<comments>https://www.bouska.biz/billing-system/#comments</comments>
		<pubDate>Sat, 14 Dec 2013 20:34:07 +0000</pubDate>
		<dc:creator><![CDATA[bouskam]]></dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[MCV]]></category>
		<category><![CDATA[telco]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.bouska.biz/?p=251</guid>
		<description><![CDATA[Jedná se o MVC aplikaci napsanou v PHP 5.3 Použil jsem Zend Framework 1 a to zejména z důvodu dobré dostupnosti dokumentace a literatury. Další aplikace ale už budu raději vyvíjet v nette nebo jiném frameworku, neboť u Zend-u jsem narazil na dost nečekané a otravné limity zejména v oblasti spolupráce s Ajax, jquery, přizpůsobení &#8230; </p><p><a class="more-link block-button" href="https://www.bouska.biz/billing-system/">Pokračovat ve čtení &#187;</a>]]></description>
				<content:encoded><![CDATA[<p><span style="font-size: 12px; line-height: 18px;">Jedná se o MVC aplikaci napsanou v PHP 5.3</span></p>
<p><span style="font-size: 12px; line-height: 18px;">Použil jsem Zend Framework 1 a to zejména z důvodu dobré dostupnosti dokumentace a literatury. Další aplikace ale už budu raději vyvíjet v nette nebo jiném frameworku, neboť u Zend-u jsem narazil na dost nečekané a otravné limity zejména v oblasti spolupráce s Ajax, jquery, přizpůsobení vzhledu, atd.</span></p>
<p>Dále také používám MYSQL 5.5, Apache 2 a APC resp. memcached daemona.</p>
<p>Vstupem jsou textové (csv) tabulky jednotlivých uskutečněných volání (volající, volaný čas zahájení, čas ukončení). <span style="font-size: 12px; line-height: 18px;">Výstupem jsou faktury v pdf a xml pro jednotlivé koncové zákazníky, dále seznamy jednotlivých uskutečněných volání konkrétního uživatele, jež lze v html prohlížet, filtrovat, sumarizovat a řadit podle různých sloupců.</span></p>
<p>&nbsp;</p>
<p><span id="more-251"></span></p>
<p>Tento projekt je stále ještě ve stádiu vývoje, nebyl zatím předán zadavateli, takže ještě nemohu zveřejňovat veškeré podrobnosti, na které bych chtěl upozornit. Jakmile to bude možné, tento text rozšířím o konkrétní ukázky a zajímavosti, na které jsem v průběhu vývoje této aplikace narazil.</p>
<div></div>
<div>Srdcem vlastní aplikace je výpočet a kontrola cen, jež se z důvodu úspory potřebného výpočetního výkonu provádí najednou a využívám tak efektivně cachování ve všech rovinách výpočtu.</div>
<div><span style="font-size: 12px; line-height: 18px;">postup výpočtu:</span></div>
<ul>
<li><span style="font-size: 12px; line-height: 18px;">Podle volajícího ID (číslo A)  se načtou data uživatele a patřičný ceník uživateli přiřazený.</span></li>
<li><span style="font-size: 12px; line-height: 18px;">v ceníku se vyhledá tarif odpovídající předčíslí s největším stupněm shody s volaným ID (číslo B)</span></li>
<li><span style="font-size: 12px; line-height: 18px;">každý ceník má cca 6000 řádků, tedy z důvodu urychlení využíváme cachování pomocí jedné z více možných metod memcached, APC, RAM, RAMDISK</span></li>
<li><span style="font-size: 12px; line-height: 18px;">podle Timestampu volání se určí, zda se jedná o silný či slabý provoz (svátky, Vánoce, Velikonoce, víkendy atd)</span></li>
<li><span style="font-size: 12px; line-height: 18px;">na základě údajů z ceníku se určí také tarifikace, která je rozdílná pro různé kategorie uživatelů a také pro různé destinace volání (60+60, 60+1, 30+1, 15+15, 1+1)</span></li>
<li><span style="font-size: 12px; line-height: 18px;">spočítá se výsledná cena</span></li>
<li><span style="font-size: 12px; line-height: 18px;">musí se ošetřit přechody mezi vysokým a nízkým tarifem v rámci jednoho hovoru</span></li>
<li><span style="font-size: 12px; line-height: 18px;">musí se ošetřit různé chytáky ve speciálních tarifech (linky 810, 900,906, 976, 1188, 1301 apod)</span></li>
<li><span style="font-size: 12px; line-height: 18px;">kontroluje se minimální marže (koncová cena pro zákazníka vs. spojovací poplatky operátorům a poskytovatelům)</span></li>
<li>v případě chyby (nenalezen uživatel nenalezen tarif atd) nejsou faktury vygenerovány a vše se vrátí ze zálohy do původního stavu</li>
</ul>
<p>&nbsp;</p>
<p>další je myslím nejlépe patrné ze screenshotů:</p>

<div class="ngg-imagebrowser" id="ngg-imagebrowser-1-251">

	<h3>Uživatel + JS</h3>

	<div class="pic">
<a href="https://www.bouska.biz/wp-content/gallery/boubill/jscipt.png" title="Editace uživatele. Verifikace polí formuláře pomocí javascriptu." class="ngg-fancybox" rel="boubill">
	<img alt="Uživatel + JS" src="https://www.bouska.biz/wp-content/gallery/boubill/jscipt.png"/>
</a>
</div>
	<div class="ngg-imagebrowser-nav"> 
		<div class="back">
			<a class="ngg-browser-prev" id="ngg-prev-28" href="https://www.bouska.biz/billing-system/?pid=28">&#9668; Back</a>
		</div>
		<div class="next">
			<a class="ngg-browser-next" id="ngg-next-4" href="https://www.bouska.biz/billing-system/?pid=4">Next &#9658;</a>
		</div>
		<div class="counter">Picture 1 of 19</div>
		<div class="ngg-imagebrowser-desc"><p>Editace uživatele. Verifikace polí formuláře pomocí javascriptu.</p></div>
	</div>	

</div>	


<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.bouska.biz/billing-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XSS &#8211; díl 1.</title>
		<link>https://www.bouska.biz/xss-dil-1/</link>
		<comments>https://www.bouska.biz/xss-dil-1/#comments</comments>
		<pubDate>Wed, 27 Nov 2013 23:14:59 +0000</pubDate>
		<dc:creator><![CDATA[bouskam]]></dc:creator>
				<category><![CDATA[bezpečnost]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://www.bouska.biz/?p=198</guid>
		<description><![CDATA[XSS znamená cross-site scripting. Je to velmi často používaná metoda útoku, kdy útočník propašuje škodlivý kód do PHP či jiné aplikace. Docílí tak toho, že uživatel či správce, který aplikaci použije, aniž by to spozoroval spustí kód z jiného umístění. Tato metoda předpokládá, že buď má útočník přístup pro zápis do nějaké části (souboru) aplikace &#8230; </p><p><a class="more-link block-button" href="https://www.bouska.biz/xss-dil-1/">Pokračovat ve čtení &#187;</a>]]></description>
				<content:encoded><![CDATA[<p><strong>XSS</strong> znamená cross-site scripting. Je to velmi často používaná metoda útoku, kdy útočník propašuje škodlivý kód do PHP či jiné aplikace. Docílí tak toho, že uživatel či správce, který aplikaci použije, aniž by to spozoroval spustí kód z jiného umístění.</p>
<p>Tato metoda předpokládá, že buď má útočník přístup pro zápis do nějaké části (souboru) aplikace (špatné zabezpečení, bezpečností díra, chyba v kódu) a injektuje tak odkaz např. do css.</p>
<p>Nebo je tam tento backdoor už od začátku a třeba několik měsíců o sobě nedá vědět, dokud se útočník nerozhodne útok provést (samozřejmě &#8211; to se nás netýká, my stahujeme všechny pluginy pro wordpress z ověřených zdrojů a kontrolujeme všechny řádky jejich kódu!)</p>
<p>Asi nejčastější případ je, že se útočníkovi povede tento škodlivý kód dostat do <strong>dat</strong>, které se cílené osobě zobrazují. Toto je možné provést libovolnou akcí, která předpokládá zobrazení infikovaných dat v prohlížeči administrátora či osoby, na níž je útok veden.<br />
<span id="more-198"></span></p>
<p>Asi nebude problém nalézt nějakou akci uživatele, jež vyžaduje zobrazení v prohlížeči např. administrátora &#8211; takové přidání nového příspěvku do diskuze, zadání nové objednávky v e-shopu, žádost zadaná přes kontaktní formulář, a spousta dalších jiných akcí toto předpokládá.</p>
<p>Je to velmi jednoduché &#8211; útočníkovi stačí najít neošetřené textové či jiné uživatelské vstupy, přes které krom standardního textu projdou také znaky <span style="color: #ff0000;"><strong><em>&lt;&gt; :/&#8221;</em></strong></span></p>
<p>schválně si zkuste, kolik diskuzních fór či e-shopů dovolí registrovat uživatele s adresou dejme tomu</p>
<blockquote><p>Tonda Novak</p>
<p>&lt;script src=&#8221;http://www.bouska.biz/public/xsstest.js&#8221;&gt;&lt;/script&gt;</p>
<p>Praha 1</p></blockquote>
<p><em>(Můžete si vyzkoušet &#8211; soubor xsstest.js z příkladu v případě spuštění vyvolá popup okno s varováním.)</em></p>
<p>&nbsp;</p>
<p>Samozřejmě, že toto ještě neznamená, že potenciálně škodlivý skript <em>xsstest.js se skutečně </em><strong>SPUSTÍ</strong></p>
<p>Pokud programátor odvedl svou práci v přijatelné kvalitě, budou buď tagy zcela vypuštěny a nebo budou převedeny <a href="http://us3.php.net/manual/en/function.htmlspecialchars.php">opisem</a>  na neškodný textový řetězec, který nezpůsobí spuštění tohoto kódu ale pouze zobrazení uvedeného textu. Text pak např. místo znaku <strong> &lt;</strong> obsahuje řetězec <strong>&amp;lt</strong> který prohlížeč interpretuje jako text a nikoliv jako začátek tagu. Filtrování je možno provézt minimálně na dvou místech: při přijímání dat z formuláře a nebo až při jejich zobrazování v pohledu. Důsledný programátor použije pro jistotu filtrování na obou místech.</p>
<p>Pokud však programátor byl lempl, tak se filtrování neprovede, data se v nezměněné podobě uloží a při dalším zobrazení se prohlížeči pošlou opět v nefiltrované podobě.</p>
<p>&nbsp;</p>
<p>Tak schválně&#8230; kolik běžně používaných diskuzních fór, CMS, ERP, seznamek,  bazarů, eshopů a jiných běžně dostupných aplikací nefiltruje data a dovolí Vám registrovat se s výše uvedenou adresou (přezdívkou, poznámkou, vzkazem pro administrátora)</p>
<p>Tak to by bylo pro tentokrát vše, v příštím dílu si povíme, jak může vlastně škodit ten <strong>škodlivý kód.</strong></p>
]]></content:encoded>
			<wfw:commentRss>https://www.bouska.biz/xss-dil-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.379 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2026-10-12 23:15:02 -->

<!-- Compression = gzip -->