<?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>BBProject.net &#187; zabezpieczenia</title>
	<atom:link href="http://www.bbproject.net/tag/zabezpieczenia/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bbproject.net</link>
	<description>Programowanie, webmastering, informatyka</description>
	<lastBuildDate>Mon, 26 Jul 2010 08:03:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>CAPTCHA bez dręczenia użytkownika</title>
		<link>http://www.bbproject.net/2010/04/captcha-bez-dreczenia-uzytkownika/</link>
		<comments>http://www.bbproject.net/2010/04/captcha-bez-dreczenia-uzytkownika/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 15:11:00 +0000</pubDate>
		<dc:creator>M@ster</dc:creator>
				<category><![CDATA[Webmastering]]></category>
		<category><![CDATA[bot]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[zabezpieczenia]]></category>

		<guid isPermaLink="false">http://www.bbproject.net/?p=275</guid>
		<description><![CDATA[CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) &#8211; rodzaj techniki stosowanej jako zabezpieczenie na stronach www, celem której jest dopuszczenie do przesłania danych tylko wypełnionych przez człowieka. Źródło: http://pl.wikipedia.org/wiki/CAPTCHA Zapewne nie raz spotkaliście się z kodami obrazkowymi które trudno było rozpoznać nawet człowiekowi. Widziałem już różne zabezpieczenia przeciw spam botom, [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><strong>CAPTCHA</strong> (Completely Automated Public Turing test to tell Computers and Humans Apart) &#8211; rodzaj techniki stosowanej jako zabezpieczenie na stronach www, celem której jest dopuszczenie do przesłania danych tylko wypełnionych przez człowieka.</p>
<p>Źródło: <a href="http://pl.wikipedia.org/wiki/CAPTCHA">http://pl.wikipedia.org/wiki/CAPTCHA</a></p></blockquote>
<p><img class="alignleft size-full wp-image-276" title="CAPTCHA" src="http://www.bbproject.net/wp-content/uploads/2010/03/captcha.png" alt="" width="167" height="60" />Zapewne nie raz spotkaliście się z kodami obrazkowymi które trudno było rozpoznać nawet człowiekowi. Widziałem już różne zabezpieczenia przeciw spam botom, mniej lub bardziej wymyślne, a nawet takie które spowodowały że sobie odpuściłem wysłanie formularza gdyż nie byłem w stanie ich pomyślnie przejść.</p>
<p>W tym wpisie pokaże Wam jak zrobić alternatywne metody weryfikacji człowieczeństwa bez denerwujących kodów obrazkowych czy innych mechanizmów utrudniających życie.</p>
<p><span id="more-275"></span>Być może to co opiszę ktoś już wynalazł i stosuje z powodzeniem, nie mniej, wymyśliłem to przy okazji jednego projektu gdzie po dziś dzień działa i spisuje się znakomicie &#8211; chyba że tą stronę omijają spam boty <img src='http://www.bbproject.net/wp-includes/images/smilies/icon_wink.png' alt=';)' class='wp-smiley' /> .</p>
<h4>Idea</h4>
<p>Na czym polega ów metoda? <strong>Na dynamicznej zmianie formularza, przed jego wysłaniem.</strong> Kolejno, w skrypcie PHP obsługującym daną formę, sprawdzamy poprawność struktury.</p>
<p>Spam boty, przeczesując sieć, odczytują z kodu HTML dostępne pola i wysyłają żądanie <em>POST</em> do lokacji widniejącej w  parametrze <em>action</em>. Jeśli zmienimy formularz dynamicznie przy pomocy JavaScript&#8217;u, wtedy spam bot nie zobaczy tych zmian i wyśle pierwotną wersję &#8211; wyjątkiem było by tutaj gdyby bot działał jak przeglądarka i interpretował całą stronę, ale w to wątpię.</p>
<h4>Praktyka</h4>
<p>Jeśli powyższy opis nie jest zbyt jasny, to poniższy przykład rozwieje wszelkie wątpliwości.</p>
<p>Załóżmy że mamy prosty formularz z jednym polem tekstowym &#8211; na przykład do dodawania komentarzy na stronę.</p>
<pre class="brush: xml">&lt;form id="form" action="form.php" method="post"&gt;
  &lt;input type="text" name="comment"&gt;
  &lt;input type="submit" name="submit" value="Wyślij"&gt;
&lt;/form&gt;</pre>
<p>Po wysłaniu takiej formy i zrzuceniu w PHP zawartości tablicy <em>$_POST</em> otrzymamy:</p>
<pre class="brush: plain">array(2) {
  ["comment"]=&gt;
  string(14) "mój komentarz"
  ["submit"]=&gt;
  string(7) "Wyślij"
}</pre>
<p>I w ten sposób wyglądała by przesłana zawartość jeśli wysłał by ją spam bot. Teraz wprowadzimy kilka zmian, aby ta wysłana przez człowieka (tj. z tradycyjnej przeglądarki) różniła się od tej powyższej.</p>
<p>Skorzystam z biblioteki <a href="http://jquery.com">jQuery</a> w celu łatwiejszego manipulowania elementami dokumentu HTML.</p>
<pre class="brush: jscript">$(document).ready(function(){
  $('#form').append('&lt;input type="hidden" name="key" value="234786"&gt;');
  $('#form input[name="submit"]').removeAttr('name');
});</pre>
<p>Co zrobiłem? Tuż po załadowaniu całego dokumentu, dodałem nowe ukryte pole formularza o nazwie <em>key</em> i wartości <em>234786</em>. Kolejno, usunąłem atrybut <em>name</em> z przycisku <em>submit</em>. Po takim zabiegu, skrypt PHP widzi nasz formularz w następujący sposób:</p>
<pre class="brush: plain">array(2) {
  ["comment"]=&gt;
  string(14) "mój komentarz"
  ["key"]=&gt;
  string(6) "234786"
}</pre>
<p>Jak widać, nie występuje już w tablicy <em>$_POST</em> w ogóle przycisk <em>submit</em>, a dodatkowo doszło ukryte pole <em>key</em>.</p>
<p>Jeśli teraz wyczulimy skrypt przetwarzający formularz na te zmiany, możemy odróżnić bota od człowieka:</p>
<pre class="brush: php">if (( ! isset($_POST['submit'])) &amp;&amp; isset($_POST['key']) &amp;&amp; ($_POST['key'] == '234786'))
{
  echo 'jesteś człowiekiem :]';
}
else
{
  echo 'jesteś spam botem :[';
}</pre>
<h4>Zabezpieczenia</h4>
<p>Pokazane tutaj rozwiązanie, w postaci usunięcia atrybutu przycisku <em>submit</em>, oraz dodanie pola <em>hidden</em> są tylko przykładowe. Siła tego rozwiązania tkwi w unikalności metody, a tutaj mamy naprawdę spore pole do popisu.</p>
<p>Możemy dodawać i usuwać pola. Manipulować nazwą lub zawartością pól ukrytych, np.: jego wartość musi być sumą kontrolną z tego co wpisze użytkownik w innym polu (wymagane podpięcie się pod zdarzenie <em>onSubmit</em> w takim wypadku). Możemy dodać pole z nazwą przeglądarki, adresem IP i porównać w skrypcie PHP czy się zgadzają oba wpisy. Pole do popisu jest naprawdę ogromne &#8211; niech poniesie Was fantazja, grunt to dobrze namieszać <img src='http://www.bbproject.net/wp-includes/images/smilies/icon_smile.png' alt=':)' class='wp-smiley' /> .</p>
<p>Sam kod JavaScript warto umieścić w zewnętrznym pliku oraz potraktować narzędziem typu <a href="http://www.minifyjavascript.com">kompresor JS</a>. To utrudni ew. rozgryzienie naszego przypadku.</p>
<h4>Uwagi</h4>
<p>Czy jest to rozwiązanie idealne? Oczywiście nie. Pierwsza wada to wymagana obsługa JavaScript u użytkownika. Druga to łatwość obejścia tego typu zabezpieczenia przez człowieka. I tutaj są dwa aspekty tej przypadłości.</p>
<p>Autor bota musiał by przejrzeć kod naszej strony i zorientować się co tam się dokładnie dzieje i zmodyfikować swój twór. Jeśli przyjmiemy że każdy webmaster zastosuje inny algorytm zabezpieczający, to mało komu będzie się chciało dostosowywać swojego szkodnika do każdej strony z osobna tylko po to by móc masowo spamować. Koszt tej operacji przewyższał by zyski z rozsyłanego spamu.</p>
<p>Czyli, zasadniczo da się prosto dojść do tego jak spreparować formularz (chociaż jeśli ktoś namiesza to wcale to takie łatwe być nie musi <img src='http://www.bbproject.net/wp-includes/images/smilies/icon_wink.png' alt=';)' class='wp-smiley' /> ), jednak jest to z ekonomicznego punktu widzenia nieopłacalne dla spamera.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bbproject.net/2010/04/captcha-bez-dreczenia-uzytkownika/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Windows 7 BOX &#8211; aktywacja telefoniczna</title>
		<link>http://www.bbproject.net/2010/02/windows-7-box-aktywacja-telefoniczna/</link>
		<comments>http://www.bbproject.net/2010/02/windows-7-box-aktywacja-telefoniczna/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 06:50:26 +0000</pubDate>
		<dc:creator>M@ster</dc:creator>
				<category><![CDATA[Artykuły]]></category>
		<category><![CDATA[aktywacja]]></category>
		<category><![CDATA[oprogramowanie]]></category>
		<category><![CDATA[wga]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[zabezpieczenia]]></category>

		<guid isPermaLink="false">http://www.bbproject.net/?p=205</guid>
		<description><![CDATA[Jeden z tych rzeczy, których myślą przewodnią jest: „jak utrudnić życie legalnemu użytkownikowi?”. Wpis ten jest suplementem mojego niedawno publikowanego nt. wpływu zabezpieczeń oprogramowania na poziom piractwa. Ale o czym właściwie chcę napisać? O tym jak wygląda aktywacja systemu Windows 7 w wersji BOX, czyli takiej, która nie jest przypisana do konkretnego sprzętu (w przeciwieństwie [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-210" title="Genuine Microsoft Software" src="http://www.bbproject.net/wp-content/uploads/2010/01/wga-160x160.png" alt="" width="160" height="160" />Jeden z tych rzeczy, których myślą przewodnią jest: „jak utrudnić życie legalnemu użytkownikowi?”. Wpis ten jest suplementem mojego niedawno publikowanego nt. <a href="http://www.bbproject.net/2009/12/piractwo-a-sposob-dystrybucji-zabezpieczen-produktu">wpływu zabezpieczeń oprogramowania na poziom piractwa</a>.</p>
<p>Ale o czym właściwie chcę napisać? O tym jak wygląda aktywacja systemu Windows 7 w wersji <a href="http://pl.wikipedia.org/wiki/BOX">BOX</a>, czyli takiej, która nie jest przypisana do konkretnego sprzętu (w przeciwieństwie do <a href="http://pl.wikipedia.org/wiki/OEM">OEM</a>). Mówiąc prościej, w myśl licencji, mamy tutaj dowolną swobodę w przenoszeniu i reinstalacji systemu. Czy aby na pewno?</p>
<p>Nikt niestety nie wspominał o tym że ilość aktywacji internetowych, której musimy dokonać po zainstalowaniu systemu, jest ograniczona do 10! Po tej magicznej liczbie, pozostaje nam już tylko czasochłonna aktywacja telefoniczna. Dlaczego produkt w wersji przeznaczonej do przenoszenia między komputerami wprowadza się tak bezsensowne ograniczenia i zmusza legalnych użytkowników do udowadniania iż nie są złodziejami? Zapraszam do zapoznania się z resztą historii o aktywacji systemu Windows 7 BOX.</p>
<p><span id="more-205"></span>Sprawa nie dotyczy mnie bezpośrednio, a bardzo blisko zaprzyjaźnionej mi osoby. Cała sytuacja rozegrała się w około wielokrotnej reinstalacji systemu, wymuszonej przez problemy z dyskiem i kilka ustawień w biosie. Prawdziwy problem pojawił się, gdy system odmówił aktywacji internetowej. Ktoś powie, po co tyle razy formatować? Jak już wspomniałem &#8211; problemy techniczne, po drugie, po to właśnie jest wersja BOX systemu, abyśmy mieli swobodę w reinstalacji systemu i to nie tylko na jednym komputerze.</p>
<p>Tym sposobem w ciągu jednego dnia, użytkownik tej wersji systemu, pozbawił się na drodze legalnego użytkowania, możliwości prostej i szybkiej aktywacji. Wykonanie tej samej czynności na drodze telefonicznej może nie zajmuje dużo czasu, nie mniej jest uciążliwe z uwagi na fakt przepisywania serii numerów do i z telefonu, zresztą posłuchajcie sami (newralgiczne dane zostały wyciszone):</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="295" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Jz1XZxzLyDk&amp;hl=pl_PL&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="295" src="http://www.youtube.com/v/Jz1XZxzLyDk&amp;hl=pl_PL&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>W związku z zaistniałą sytuacją, wystosowany został e-mail do polskiego oddziału firmy Microsoft o następującej treści:</p>
<blockquote><p>Witam,</p>
<p>Niedawno zakupiłem Windows 7 Home Premium BOX, z powodu problemów sprzętowych (dysk, reset konfiguracji BIOS) kilkakrotnie reinstalowałem system na tej samej maszynie. Aktywacja przez internet nie jest możliwa, i muszę aktywować system telefonicznie &#8211; co jest dodatkowym kosztem (dzwonię z telefonu komórkowego, numer 0801(&#8230;) nie działa).</p>
<p>Czy istnieje możliwość wymiany klucza na nowy, taki który będzie mógł aktywować się przez internet? Podczas używania nie została w żaden sposób naruszona licencja, system był i jest używany na tym samym komputerze, którego konfiguracja mogła ulegać zmianie wyłącznie przez ustawienia BIOS&#8217;u (zapomniałem wyłączyć w biosie nieistniejącą stacje dyskietek 3.5cala).</p>
<p>Skoro kupiłem licencję na produkt, i nie naruszyłem tej licencji (ciągle używam tego samego komputera, jest to jedyny komputer na którym instalowany jest system), to nie widzę podstaw ku temu, aby Microsoft blokował mój klucz aktywacji. Microsoft blokując mój oryginalny zakupiony klucz aktywacji godzi w moje dobra osobiste sugerując, że posiadany przeze mnie produkt jest używany przeze mnie w sposób nielegalny mimo że nie naruszyłem zasad licencji.</p>
<p>W nawiązaniu do pkt.25 licencji, cyt.</p>
<p>„25. SKUTKI PRAWNE. W niniejszej umowie zostały przedstawione niektóre z praw przysługujących stronom. Licencjobiorcy mogą przysługiwać inne prawa na mocy ustawodawstwa stanowego lub krajowego. Licencjobiorcy mogą przysługiwać także prawa względem strony, od której nabył oprogramowanie. Niniejsza umowa nie zmienia praw przysługujących Licencjobiorcy na mocy ustawodawstwa stanowego lub krajowego, jeśli ustawodawstwo to na takie zmiany nie zezwala.”</p>
<p>&#8230;uważam że nastąpiła zamiana w działaniu zakupionego produktu (brak możliwości aktywacji przez internet), która nie jest wynikiem niewłaściwego lub niezgodnego z umową licencyjną użytkowania. Nie wynika zatem z mojej strony.</p>
<p>Proszę o przydzielenie działającego klucza aktywacji bądź usunięcie blokady z klucza widocznego na zdjęciu załączonym do niniejszej wiadomości.</p>
<p>[...]</p></blockquote>
<p>W odpowiedzi od producenta systemu Windows, otrzymujemy następującą odpowiedź w tej sprawie:</p>
<blockquote><p>Szanowny Panie,</p>
<p>Dziękujemy za skontaktowanie się z Centrum Obsługi Klienta Microsoft.</p>
<p>Nie ma możliwości uzyskania nowego klucz produktu do posiadanego przez Pana oprogramowania.</p>
<p>Poniżej zamieszczam oficjalne stanowisko firmy Microsoft dotyczące procesu aktywacji oprogramowania:</p>
<p>Klient ma możliwość samodzielnego wykonania od 1 do10 automatycznych internetowych aktywacji jednej kopii oprogramowania na jednym komputerze (w zależności od tego czy jest to wersja BOX czy OEM).</p>
<p>Po przekroczeniu tego limitu i próbie dokonania kolejnej aktywacji, Klient zostanie poproszony o kontakt telefoniczny z przedstawicielem Biura Obsługi Klientów Microsoft, który pomoże przeprowadzić kolejną aktywację produktu. Przedstawiciel Biura Obsługi Klientów Microsoft będzie mógł w tym celu poprosić Klienta o przedstawienie kopii dowodu zakupu oprogramowania oraz podanie klucza produktu znajdującego się na Certyfikacie Autentyczności.</p>
<p>Powyższy proces aktywacji produktów pozwala Klientom zyskać pewność, że użytkowana przez nich kopia oprogramowania Microsoft jest oryginalna, legalna, a co za tym idzie, najwyższej jakości.</p>
<p>W przypadku problemów z aktywacją internetową, należy kontaktować się z Działem Aktywacji Produktów Microsoft drogą telefoniczną: 0-801 308 801 (wew. 1) lub (0-22) 5941999 (wew. 1).</p>
<p>Aby połączyć się z konsultantem, należy przeczekać automatyczną wiadomość odtwarzaną przez system. Dział Aktywacji przyjmuje zgłoszenia telefoniczne od poniedziałku do niedzieli w godzinach od 8.00 do 22.00.</p>
<p>Dodam, że numery 0-801. nie są obsługiwane przez niektórych operatorów sieci komórkowych.</p>
<p>[...]</p></blockquote>
<p><img class="size-medium wp-image-211 alignleft" title="Windows 7 BOX" src="http://www.bbproject.net/wp-content/uploads/2010/01/windows7box-256x100.png" alt="" width="256" height="100" />Procedura telefonicznej aktywacji nie jest oczywiście żadną nowością i funkcjonuje w systemie Windows od dawna, nie mniej, porażający jest sposób w jaki traktowani są klienci, którzy zakupili bądź co bądź droższą wersję BOX.</p>
<p>Mając do czynienia z takim procederem, trudno nie ulec wrażeniu, że użytkownicy którzy stoją przed moralnym wyborem między oryginałem a potocznym piratem, nie widzą sensu nabywania tego pierwszego &#8211; crack nie sprawia tylu problemów.</p>
<p>Oczywiście wpis ten nie jest w żadnym stopniu zachęceniem do używania nielegalnego oprogramowania, chciałem jedynie pokazać absurdalność zabezpieczeń z jakimi muszą się zmagać osoby, które zapłaciły za produkt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bbproject.net/2010/02/windows-7-box-aktywacja-telefoniczna/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
	</channel>
</rss>
