<?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/"
	>

<channel>
	<title>WebDev</title>
	<atom:link href="http://webdev.gold.lv/feed/" rel="self" type="application/rss+xml" />
	<link>http://webdev.gold.lv</link>
	<description>Dažādi pieraksti par dažādām lietām</description>
	<pubDate>Wed, 07 Jan 2009 17:27:44 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>HTML parsētājs - SimpleHTMLDom</title>
		<link>http://webdev.gold.lv/2009/01/html-parsetajs-simplehtmldom/</link>
		<comments>http://webdev.gold.lv/2009/01/html-parsetajs-simplehtmldom/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 10:09:36 +0000</pubDate>
		<dc:creator>M</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[simplehtmldom class php html parse]]></category>

		<guid isPermaLink="false">http://webdev.gold.lv/?p=19</guid>
		<description><![CDATA[Bieži vien ir nepieciešams caur PHP ievākt saturu no kādas citas web-lapas un tikai retos gadījumos dati ir pieejami ērtajā XML/RSS formātā. Tādēļ nākas parsēt citas web-lapas HTML kodu un klasiskākā pieeja ir regular expressions izmantošana, kas ir salīdzinoši laikietilpīgs process gan pirmajā piegājienā, gan pēc katrām izmaiņām parsējamās web-lapas HTML koda struktūrā. Nesen atteicos [...]]]></description>
			<content:encoded><![CDATA[<p>Bieži vien ir nepieciešams caur PHP ievākt saturu no kādas citas web-lapas un tikai retos gadījumos dati ir pieejami ērtajā XML/RSS formātā. Tādēļ nākas parsēt citas web-lapas HTML kodu un klasiskākā pieeja ir <em>regular expressions</em> izmantošana, kas ir salīdzinoši laikietilpīgs process gan pirmajā piegājienā, gan pēc katrām izmaiņām parsējamās web-lapas HTML koda struktūrā. Nesen atteicos no šāda mazohisma un sāku izmantot jau gatavu klasi HTML parsēšanai - <a href="http://simplehtmldom.sourceforge.net/">SimpleHTMLDom</a>.</p>
<p><a href="http://simplehtmldom.sourceforge.net/">SimpleHTMLDom</a> ļauj atlasīt vajadzīgo saturu ar tikai dažām koda rindiņām un izmanto tādus pašus selektorus kā <a href="http://jquery.com/">jQuery</a> vai <a href="http://www.prototypejs.org/">Prototype Javascript framework</a>.<br />
<span id="more-19"></span><br />
Nepieciešams tikai iegūt HTML kodu no lokāla faila vai attālināti (file_get_html() vai <a href="http://lv.php.net/curl">cURL</a>) un atlasīt saturu ar simpledomhtml funkciju find(). Zemāk redzamais piemērs atradīs visus virsrakstus no webdev.gold.lv pirmās lapas un izvadīs tos vienu zem otra:</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #b1b100;">include_once</span><span style="color: #009900;">&#40;</span><span style="">'simplehtmldom/simple_html_dom.php'</span><span style="color: #009900;">&#41;</span>;
&nbsp;
<span style="color: #000088;">$html</span> <span style="color: #339933;">=</span> file_get_html<span style="color: #009900;">&#40;</span><span style="">'http://webdev.gold.lv/'</span><span style="color: #009900;">&#41;</span>;
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$html</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">find</span><span style="color: #009900;">&#40;</span><span style="">'.title span'</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$e</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #990000;">print</span> <span style="color: #000088;">$e</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">plaintext</span><span style="color: #339933;">.</span><span style="">''</span>;
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$html</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">clear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Patreiz lielākais trūkums ir lielais atmiņas izmantojums, jo pie HTML koda nolasīšanas tiek izveidots ļoti liels vairākdimensiju masīvs un tādēļ nedrīkst aizmirst par $html->clear(); pēc parsēšanas.</p>
<p>Vairāk piemēru un laba dokumentācija atrodama <a href="http://simplehtmldom.sourceforge.net/manual.htm">SimpleHTMLDom mājas lapā</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://webdev.gold.lv/2009/01/html-parsetajs-simplehtmldom/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Unobtrusive Javascript</title>
		<link>http://webdev.gold.lv/2008/11/unobtrusive-javascript/</link>
		<comments>http://webdev.gold.lv/2008/11/unobtrusive-javascript/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 14:04:13 +0000</pubDate>
		<dc:creator>M</dc:creator>
		
		<category><![CDATA[HTML]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[javascript html]]></category>

		<guid isPermaLink="false">http://webdev.gold.lv/?p=14</guid>
		<description><![CDATA[Noformējumam ir jābūt atdalītam no satura! Lūk tieši tādēļ mums ir iespēja web-lapas HTML failā glabāt tikai strukturizētu saturu, bet CSS un JavaScript pārvietot uz atsevišķiem failiem. Ieguvums ir ne tikai &#8220;tīrāks&#8221; lapas kods, kas atvieglo izstrādi un modificēšanu nākotnē, un ātrdarbību, bet tas ir arī pluss no SEO viedokļa, jo tādi meklētāji kā Google [...]]]></description>
			<content:encoded><![CDATA[<p>Noformējumam ir jābūt atdalītam no satura! Lūk tieši tādēļ mums ir iespēja web-lapas HTML failā glabāt tikai strukturizētu saturu, bet CSS un JavaScript pārvietot uz atsevišķiem failiem. Ieguvums ir ne tikai &#8220;tīrāks&#8221; lapas kods, kas atvieglo izstrādi un modificēšanu nākotnē, un ātrdarbību, bet tas ir arī pluss no SEO viedokļa, jo tādi meklētāji kā Google varēs vieglāk indeksēt saturu. Ar CSS viss ir vienkārši un skaidri - glabājam to atsevišķā failā un izvairāmies no &#8220;inline&#8221; stilu definēšanas (&lt;div style=&#8221;&#8230;&#8221;).</p>
<p>Arī JavaScript var pilnībā atdalīt no lapas satura un ne tikai glabāt to atsevišķos failos, bet arī nelietot tādus event`us kā onClick, onMouseOver, onLoad u.t.t. JavaScript web-lapā ir papildus funkcionalitāte un nedrīkst paļauties uz tā atbalstu lietotāja pārlūkprogrammā, jo tas var būt gan vienkārši atslēgts, gan izfiltrēts, gan netikt atbalstīts mobilajās ierīcēs.<br />
<span id="more-14"></span><br />
Agrāk mēs to darījām šādi:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;mylink&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span> <span style="color: #000066;">onMouseOver</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;something(this);&quot;</span>&gt;</span>...<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span></pre></div></div>

<p>Bet pareiza pieeja šajā gadījumā ir izvairīties no onMouseOver event`a (tā pat kā no jebkura cita) un atsevišķā javascript failā piemērot vajadzīgo papildus funkcionalitāti šim elementam:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'mylink'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">onMouseOver</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// Kods, kurš izpildīsies pēc peles uzbīdīšanas uz saites</span>
<span style="color: #009900;">&#125;</span>;</pre></div></div>

<p>Šāda pieeja ir arī nesalīdzināmi parocīgāka, ja vēlamies pievienot papildus funkcionalitāti uzreiz vairākiem elementiem. Tad ir nepieciešams atrast visus šos elementus (piemēram, pēc klases nosaukuma) un piešķirt tiem izpildāmo kodu. Piemērs:</p>
<p>HTML:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;img1.jpg&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;popupImg&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;attēls1&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;img2.jpg&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;popupImg&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;attēls2&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;img3.jpg&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;popupImg&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;attēls3&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span></pre></div></div>

<p>JavaScript:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
</pre></td><td class="code"><pre class="javascript javascript" style="font-family:monospace;">window.<span style="color: #000066;">onload</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #006600; font-style: italic;">// Izpildam tikai pēc lapas ielādes</span>
   <span style="color: #003366; font-weight: bold;">var</span> nodes <span style="color: #339933;">=</span> getElementsByClass<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'popupImg'</span><span style="color: #009900;">&#41;</span>; <span style="color: #006600; font-style: italic;">// Atrodam visus elementus ar klasi &quot;popupImg&quot;</span>
   <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span>0; i<span style="color: #339933;">&lt;</span>nodes.<span style="color: #660066;">length</span>; i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      nodes<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">onclick</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
         <span style="color: #006600; font-style: italic;">// Norādam kas notiks pēc onClick event`a:</span>
         <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">alt</span><span style="color: #009900;">&#41;</span>;
      <span style="color: #009900;">&#125;</span>;
   <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// Papildus funkcija, kas atgriež masīvu ar visiem vienas klases elementiem</span>
<span style="color: #003366; font-weight: bold;">function</span> getElementsByClass<span style="color: #009900;">&#40;</span> searchClass<span style="color: #339933;">,</span> domNode<span style="color: #339933;">,</span> tagName<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>domNode <span style="color: #339933;">==</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> domNode <span style="color: #339933;">=</span> document;
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tagName <span style="color: #339933;">==</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> tagName <span style="color: #339933;">=</span> <span style="color: #3366CC;">'*'</span>;
	<span style="color: #003366; font-weight: bold;">var</span> el <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #003366; font-weight: bold;">var</span> tags <span style="color: #339933;">=</span> domNode.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span>tagName<span style="color: #009900;">&#41;</span>;
	<span style="color: #003366; font-weight: bold;">var</span> tcl <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot; &quot;</span><span style="color: #339933;">+</span>searchClass<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot; &quot;</span>;
	<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span>0<span style="color: #339933;">,</span>j<span style="color: #339933;">=</span>0; i<span style="color: #339933;">&lt;</span>tags.<span style="color: #660066;">length</span>; i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> test <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot; &quot;</span> <span style="color: #339933;">+</span> tags<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">className</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; &quot;</span>;
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>test.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span>tcl<span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span>
			el<span style="color: #009900;">&#91;</span>j<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> tags<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>;
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000066; font-weight: bold;">return</span> el;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://webdev.gold.lv/2008/11/unobtrusive-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Drošības pamati web-lapās</title>
		<link>http://webdev.gold.lv/2008/10/drosibas-pamati-web-lapas/</link>
		<comments>http://webdev.gold.lv/2008/10/drosibas-pamati-web-lapas/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 15:17:32 +0000</pubDate>
		<dc:creator>M</dc:creator>
		
		<category><![CDATA[Drošība]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[injekcija]]></category>

		<category><![CDATA[sql]]></category>

		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://webdev.gold.lv/?p=7</guid>
		<description><![CDATA[Piedāvāju nelielu aprakstu par populārākajām web-lapu ievainojamībām un padomus kā izvairīties no tām.
SQL injekcijas
Ja dati pirms to saglabāšanas datu bāzē netiek pareizi apstrādāti, tad ļaundaris var injicēt papildus nosacījumus SQL pieprasījumos, kā rezultātā ir iespējams nolasīt/labot/dzēst jebkurus datus datu bāzē. Vairāk par SQL uzbrukumiem - SQL Injection Cheat Sheet.
Lai izvairītos no SQL injekcijām, visi dati [...]]]></description>
			<content:encoded><![CDATA[<p>Piedāvāju nelielu aprakstu par populārākajām web-lapu ievainojamībām un padomus kā izvairīties no tām.</p>
<p><strong>SQL injekcijas</strong><br />
Ja dati pirms to saglabāšanas datu bāzē netiek pareizi apstrādāti, tad ļaundaris var injicēt papildus nosacījumus SQL pieprasījumos, kā rezultātā ir iespējams nolasīt/labot/dzēst jebkurus datus datu bāzē. Vairāk par SQL uzbrukumiem - <a href="http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/">SQL Injection Cheat Sheet</a>.</p>
<p>Lai izvairītos no SQL injekcijām, visi dati pirms to ievietošanas SQL pieprasījumā ir jāapstrādā ar funkciju <a href="http://lv.php.net/mysql_real_escape_string">mysql_real_escape_string</a>.</p>
<p><strong>XSS - Cross Site Scripting</strong><br />
Viena no biežākajām ievainojamībām web-lapās ir tieši XSS - JavaScript koda injekcija, kas ļauj vizuāli izmainīt web-lapu, pārvirzīt tās apmeklētājus vai iegūt informāciju par tiem, nolasīt <em>cookie</em> datus un izmantot visas pārējās JavaScript iespējas. Piemēram, slikti aizsargātā lapā, apmeklētājs var pievienojot komentāru norādīt savu vārdu kā &lt;script&gt;window.location=&#8221;http://someplace.com&#8221;;<br />
&lt;script&gt;, kā rezultātā pie komentāru apskates visi apmeklētāji tiks pārsūtīti uz citu lapu. Par dažādiem XSS piemēriem var palasīties iekš <a href="http://ha.ckers.org/xss.html">http://ha.ckers.org/xss.html</a>. Tāpēc visi dati pirms izvadīšanas web-lapā ir jāapstrādā vismaz ar funkciju <a href="http://lv.php.net/htmlentities">htmlentities()</a>.</p>
<p><strong>Aizsardzība pret nozagto sesiju lietošanu</strong></p>
<p>Parasti pēc sesijas izveidošanas lietotāja pārlūkprogrammā tiek saglabāts cookie ar sesijas ID, kas pēc noklusējuma ir vienīgais veids lai noteiktu, ka tieši šim lietotājam atbilst konkrētā sesija ar visu tajā esošo informāciju. Ja ļaundarim izdodās uzzināt šo sesijas ID (kas var būt izdarāms gan ar SQL injekciju, gan, visbiežāk, ar XSS, gan jebkādā veidā nolasot cookie failus no lietotāja datora), tad viņš norāda tādu pašu ID savā pārlūkprogrammā un iegūst no dotās web-lapas to pašu, ko cietušais lietotājs, piemēram, pieeju pie administrēšanas paneļa vai profilu forumā.</p>
<p>Pilnībā izslēgt jebkādu iespēju nozagt sesijas ID un/vai jebkurus citus cookie datus ir gandrīz neiespējami un tāpēc ir jāparūpējas par aizliegumu izmantot vienu sesiju vairākos datoros. Populārākais un, iespējams, labākais risinājums ir pie sesijas izveidošanas (piemēram, pēc ielogošanās formas) saglabāt lietotāja IP adresi un pie katras nākamās lapas ielādes to salīdzināt ar faktisko IP adresi, un gadījumā, ja abas IP nesakrīt, izdzēst sesiju.</p>
<p><strong>Paroļu šifrēšana</strong></p>
<p>Pašsaprotami, ka paroles nedrīkst tikt glabātas tīrā teksta veidā un tām ir jābūt šifrētam vismaz ar MD5 algoritmu, bet arī tas nav drošs risinājums, jo izmantojot brute-force metodi, pat septiņu simbolu paroles atminēšanai nav nepieciešams vairāk par dažām stundām uz viduvējas veiktspējas datora.</p>
<p>Tādēļ parolēm ir obligāti jāpievieno tā saucamais <a href="http://en.wikipedia.org/wiki/Salt_(cryptography)"><em>salt</em></a>, kas ir papildus simboli pie paroles un padara to garāku lai padarītu paroles atminēšanu neiespējamu gadījumos, kad ļaundarim ir zināms tikai paroles <em>hash</em>. Piemērs:</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000088;">$password</span> <span style="color: #339933;">=</span> <span style="">'qwerty'</span>; <span style="color: #666666; font-style: italic;">// Lietotāja ievadītā parole</span>
<span style="color: #000088;">$salt</span> <span style="color: #339933;">=</span> <span style="color: #990000;">md5</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$username</span><span style="color: #339933;">.</span><span style="">'#!'</span><span style="color: #009900;">&#41;</span>; <span style="color: #666666; font-style: italic;">// SALT no lietotāja vārda un divi papildus simboli</span>
<span style="color: #000088;">$password</span> <span style="color: #339933;">=</span> <span style="color: #990000;">MD5</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$password</span><span style="color: #339933;">.</span><span style="color: #000088;">$salt</span><span style="color: #009900;">&#41;</span>; <span style="color: #666666; font-style: italic;">// Galējais paroles hash</span></pre></div></div>

<p>Rezultātā ļaundarim ir jāatmin hash`a vērtību nevis vienkāršai 6 simbolu parolei, bet nu jau 26 simbolu parolei, kas ir praktiski neiespējami bez pilnas pieejas pie visas datu bāzes un web-lapas izejas koda. </p>
]]></content:encoded>
			<wfw:commentRss>http://webdev.gold.lv/2008/10/drosibas-pamati-web-lapas/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Caurspīdīgie PNG</title>
		<link>http://webdev.gold.lv/2008/10/caurspidigie-png/</link>
		<comments>http://webdev.gold.lv/2008/10/caurspidigie-png/#comments</comments>
		<pubDate>Sat, 18 Oct 2008 12:19:19 +0000</pubDate>
		<dc:creator>M</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<category><![CDATA[HTML]]></category>

		<category><![CDATA[png]]></category>

		<guid isPermaLink="false">http://webdev.gold.lv/?p=3</guid>
		<description><![CDATA[Lai arī ir iespējams izvairīties no caruspīdīgu PNG izmantošanas web-lapās, tomēr sarežģītākos dizainos tas ir neizbēgami un nākās izvēlēties pareizo metodi caurspīdības iegūšanai iekš Internet Explorer. Ar parastām bildēm viss ir vienkārši - manuāli pielietojam filtrus vai arī izmantojam seno pngfix.js.
Nedaudz sarežģītāk ir ar tādām lapām, kurās visi attēli ir PNG formātā un daļa no [...]]]></description>
			<content:encoded><![CDATA[<p>Lai arī ir iespējams izvairīties no caruspīdīgu PNG izmantošanas web-lapās, tomēr sarežģītākos dizainos tas ir neizbēgami un nākās izvēlēties pareizo metodi caurspīdības iegūšanai iekš Internet Explorer. Ar parastām bildēm viss ir vienkārši - manuāli pielietojam <a href="http://www.satzansatz.de/cssd/tmp/alphatransparency.html">filtrus</a> vai arī izmantojam seno <a href="http://homepage.ntlworld.com/bobosola/pnghowto.htm">pngfix.js</a>.</p>
<p>Nedaudz sarežģītāk ir ar tādām lapām, kurās visi attēli ir PNG formātā un daļa no tiem ir caurspīdīgi. Visērtāk ir pielietot gatavus skriptus, bet tie visbiežāk aizvieto arī necaurspīdīgos PNG un dēļ dažiem ierobežojumiem tiek sabojātā visa lapa. Priekš sevis es atradu <a href="http://www.twinhelix.com/css/iepngfix/">iepngfix.htc</a> kā ērtāko risinājumu, jo attēlu aizvietošanu varam piemērot tikai atsevišķiem elementiem, kur tas tiešām ir nepieciešams. Lūk arī neliels piemērs:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="html4strict html4strict" style="font-family:monospace;"> <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
 ...
 <span style="color: #808080; font-style: italic;">&lt;!--[if lt IE 7]&gt;</span>
<span style="color: #808080; font-style: italic;">  &lt;style type=&quot;text/css&quot;&gt;</span>
<span style="color: #808080; font-style: italic;">   .filter, img { behavior: url(iepngfix.htc) }</span>
<span style="color: #808080; font-style: italic;">  &lt;/style&gt;</span>
<span style="color: #808080; font-style: italic;"> &lt;![endif]--&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://webdev.gold.lv/2008/10/caurspidigie-png/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
