Jak często robisz kopie swoich plików?

Bezpieczeństwo Komentarze (0) »

Jeśli bym teraz Tobie zadał pytanie: „czy w przypadku awarii laptopa stracił(a)byś bezpowrotnie jakieś ważne pliki”, to jaka by była Twoja odpowiedź? Tylko szczerze! Pewnie większość osób by uświadomiła sobie, że posiada pewne ważne rzeczy (np. własne artykuły w wersji roboczej, zdjęcia, praca magisterska, własna biblioteka ciekawych fragmentów kodu itp.) tylko na dysku swojego komputera, który w każdej chwili może ulec uszkodzeniu (lub kradzieży).

Jeśli należysz do nielicznych osób, które robią kopie bezpieczeństwa, to jak często to robisz? Przykładowo ja przez pewien czas co sobotę regularnie archiwizowałem swoje pliki. Jednak wystarczyła jedna sobota, gdy powiedziałem „dzisiaj mi się nie chce” i później przez pół roku ani razu nie wykonałem kopii jakże cennych danych.

Ponieważ jestem leniwy, to znalazłem pewien program, który automatycznie robi kopię plików i wrzuca je na serwer. Niestety, ale program został porzucony przez twórców. Jednak znalazłem inne ciekawe rozwiązanie. Otóż natrafiłem na darmowy program Copy (klon Dropboxa), który można tak skonfigurować, aby backupował nasze pliki. Jego zaletą jest fakt, że dostajemy aż 20 GB miejsca zupełnie za darmo!

Program jak również opis jego konfiguracji opisałem na osobnej stronie: Backup on-line za darmo.

MailCrypter – darmowa wtyczka dla wordpressa do kodowania adresów e-mail

SPAM Komentarze (0) »

Napisałem prostą wtyczkę dla wordpressa, która ma za zadanie kodować „w tle” adresy e-mail w treściach notek na blogu. Więcej szczegółów znajdziesz na podstronie: MailCrypter

Tagi: , , ,

Kodowanie adresów e-mail – skrypt w PHP

SPAM Komentarze (1) »

Wczoraj we wpisie Kodowanie adresów e-mail opisałem dlaczego warto jest kodować swoje adresy e-mail. No, ale tam był program windowsowy, który jednorazowo kodował podany adres e-mail (przydatne rozwiązanie, gdy chcesz na swojego bloga na stronie kontakt dać swój adres e-mail). To rozwiązanie się nie sprawdza, gdy tworzysz serwis ogłoszeniowy, gdzie ogłoszeniodawca podaje swój e-mail, aby potencjalni kontrahenci mogli się z nim skontaktować. Dlatego postanowiłem owy program przepisać jako funkcję w języku PHP! Czytaj dalej »

Tagi: , , , ,

Kodowanie adresów e-mail

SPAM 2 komentarze »

SPAM to niezamawiana przesyłka reklamowa. Najczęściej SPAM to email zawierający informacje o możliwości nabycia viagry po atrakcyjnej cenie, tanich rolexów lub zabiegów powiększających pewne części ciała.

Spammer to z kolei osoba/firma która wysyła SPAM. Aby spammer mógł rozsyłać SPAM musi skądś pobrać adresy e-mail. Jednym ze sposobów na zdobywanie adresów e-mail jest szukanie ich na stronach WWW. Taki spammer pisze prosty programik (zwany potocznie harvester’em), który automatycznie przegląda strony WWW (klika w linki, aby odwiedzić kolejną podstronę itp.) i gdy natrafi na adres e-mail to dodaje go do swojej bazy danych.

Wydobycie adresu email nie jest trudne, wystarczy w tekście strony odnaleźć znak @ Kilkanaście liter(lub liter i cyfr) pomiędzy enterem/spacją a @ i pomiędzy @ a następną spacją/enterem to właśnie adres email. Np. zobacz taki tekst:

Proszę wszelkie wiadomości kierować na adres gdyż jest to najszybsza i najpewniejsza forma kontaktu.

Czytaj dalej »

Tagi: , , , ,

Filtrowanie danych wprowadzanych przez użytkownika na pasku adresu

Bezpieczeństwo Komentarze (0) »

Pisząc aplikację należy mieć na uwadze fakt, że użytkownik może manipulować danymi wejściowymi. Poniżej rozważmy prosty przykład strony internetowej

<?php
$go=$_GET['go'];if ($go=='') $go='start.php';
include("gora.php");
include("menu.php");
include($go);
include("dol.php");
?>

Budowa strony jest bardzo prosta: w plikach gora.php i dol.php jest zawarty design serwisu. W pliku menu.php zawarte jest menu serwisu (zbiór linków do podstron). Natomiast najciekawszym fragmentem kodu jest: include($go.”.php”);

Ta linijka jest odpowiedzialna za zaincludowanie odpowiedniego pliku (z treścią strony). Jednak nazwa tego pliku jest przechowywana w zmiennej $go. A ta zmienna to nic innego jak parametr z jakim została wywołana strona w przeglądarce internetowej (np. http://www.strona.pl/index.php?go=kontakt).

Potencjalnym niebezpieczeństwem jest fakt, że dane nie są filtrowane. O ile użytkownik wpisze w parametrze go nieistniejącą nazwę pliku (np.  http://www.strona.pl/index.php?go=nieistniejacy_plik), to pojawi się „jedynie” drobny błąd:

Warning: include(nieistniejacy_plik.php) [function.include]: failed to open stream: No such file or directory in F:\strony\test\index.php on line 7

Warning: include() [function.include]: Failed opening 'nieistniejacy_plik.php' for inclusion (include_path='.;C:\php5\pear') in F:\strony\test\index.php on line 7

Taka strona nie wygląda zbyt profesjonalnie, jednak ten komunikat błędu sam w sobie nie jest groźny (pomijam fakt, że komunikat błędu może zdradzać informacje w jakim katalogu znajdują się pliki, więc ta informacja może w przyszłości nieznacznie ułatwić komuś atak). Dużo groźniejszy jest potencjalny użytkownik, który może spróbować zyskać nieautoryzowany dostęp do plików próbując w polu adresu manipulując danymi wpisać adres niebezpiecznego pliku np. zawierającego hasła ( np. ../../etc/passwd czy też ../data/hasla.txt). Poniższy zrzut ekranu przedstawia przykład używania nieautoryzowanego dostępu do pliku z hasłami (w tym zasymulowanym przykładzie plik z hasłami leży „katalog wyżej w katalogu data”:

Jak się przed tym bronić?? Otóż wystarczy filtrować dane wejściowe. Zakładając, że zmienna go przechowuje nazwę includowanego pliku należy filtrować niedozwolone znaki (np. znak ukośnika oznaczający wejście do innego podkatalogu, dwie kropki oznaczający katalog nadrzędny). Oto nieznacznie zmodyfikowany przykład z prymitywnym filtrowaniem znaków:

<?php
$go=$_GET['go'];
if ($go=='') $go='start.php';$find=array("..", "/", "\\");
$replace=array("", "", "");
$go=str_replace($find, $replace, $go);
if (!file_exists($go)) $go='start.php';
include("gora.php");
include("menu.php");
include($go);
include("dol.php");
?>

W powyższym przykładzie funkcja str_replace wyszukuje „niebezpieczne” znaki i je zastępuje pustym stringiem (czyli usuwa z stringa niebezpieczne znaki). Konkludując wprowadzając daną ../data/hasla.txt zmienna $go będzie przechowywać wartość: datahasla.txt (usunięte ukośniki i pary dwóch kropek uniemożliwiają funkcji include includowanie plików z innego katalogu).

Dodatkowo funkcja file_exits sprawdza, czy podany plik istnieje i jeśli nie istnieje, to załaduje domyślną stronę (start.php) dzięki czemu manipulując przy zmiennej $go gdy podamy nazwę nieistniejącego pliku nie pojawi się komunikat błedu.

Tagi: ,

Dlaczego powinieneś korzystać z oprogramowania antywirusowego?

Bezpieczeństwo 2 komentarze »

Być może temat wpisu ma mało wspólnego z webmasterstwem, ale jest bardzo ważny. Otóż każdy webmaster powinien wręcz obowiązkowo używać dobrego programu antywirusowego! Dlaczego? Postaram się to uzasadnić w tym wpisie. Czytaj dalej »

Tagi: , , ,

Jak zablokować dostęp do niektórych plików?

Bezpieczeństwo 2 komentarze »

Czasami istnieje konieczność zablokowania dostępu do pewnych plików, bądź nawet do pewnego katalogu. Załóżmy, że napisałeś prostą aplikację w PHP, która zapisuje jakieś pliki do katalogu o nazwie data (mogą to być wygenerowane jakieś pliki tymczasowe, może jakiś system cache zapisuje pewne treści, albo z powodu braku bazy danych przechowujesz pewne dane w plikach tekstowych).

Istnieje konieczność zablokowania dostępu do plików. Załóżmy, że ktoś odgadnie, że pliki z ważnymi danymi (np. loginy, e-maile i hasła użytkowników) przechowujesz w katalogu data a pliki mają nazwy 0001.txt, 0002.txt itp. Czytaj dalej »

Tagi: , , ,

WordPress - Hosting: Twój hosting - Skórka: N.Design Studio - Spolszczenie: Adam Klimowski.
RSS wpisów RSS komentarzy Zaloguj się