2010-08-10 13 views
5

Czy ktoś wie o jakichkolwiek skanerach wstrzykiwaczy skryptów, które są w stanie wykryć, czy twoja strona została naruszona (tj. Javascript, który został wstrzyknięty, że nie powinno tam być)?Skan wstrzyknięcia skryptu strony

+0

Należy robić sprawdzanie zanim cokolwiek jest napisane nie po. –

Odpowiedz

2

Jest to trudne: należy przetestować każdy adres URL aplikacji i sprawdzić, czy w odpowiedzi znajdują się określone wzorce (i bardzo trudno jest mieć dobry algorytm, który może zrozumieć, który z nich jest dobry i zły javascript, lub trzeba skonfigurować ten skaner, który może być długi i trudny).

Po stronie serwera istnieje rozwiązanie open-source w czasie rzeczywistym o nazwie mod security. Jest to zapora aplikacji WWW: może wykrywać określone wzorce w żądaniach i/lub odpowiedziach. Działa na Apache jako moduł. Jest to głównie rozwiązanie produkcyjne i nie wykrywa wtrysku podczas opracowywania. Co więcej, potrzebujesz pewnych doświadczeń, aby je dostroić (co jest dobre i złe w wymianie danych z naszymi klientami), co może być trudne i nie chroni przed nowymi atakami lub bardziej inteligentnymi atakami (na przykład ponowne kodowanie znaków).

Nawiasem mówiąc, innym rozwiązaniem jest użycie Content Security Policy, ale nie jest ono dostępne we wszystkich przeglądarkach (dobrze, nikt obecnie nie czeka, poczekaj na Firefoksa 4 ;-).

1

nie można. Ponieważ zły skrypt zawsze będzie w stanie przepisać/zneutralizować funkcję skanera, gdy pojawi się w przeglądarce.
Twój serwer nie ma już żadnej kontroli nad tym, co dzieje się na twojej stronie.

Istnieje prosty sposób ochrony strony przed wstrzyknięciem: umieść całą niezaufaną zawartość, używając iframe wskazującej inną subdomenę lub port na serwerze.
Otrzymujesz Politykę tego samego pochodzenia, która pikufikuje element iframe i uniemożliwia dostęp do zasobów strony nadrzędnej.

Następnie można bezpiecznie komunikować się między elementami pływającymi a stroną główną.
Jeśli kierujesz reklamy na nowoczesne przeglądarki lub telefony komórkowe, możesz używać window.postMessage do wysyłania wiadomości tekstowych.
dla starszych przeglądarek, istnieją pewne sztuczki here is a blog post with a solution

ta nie chroni Cię przed cross site scripting, ale to jest inny problem można rozwiązać za pomocą tajnego tokena na stronie macierzystej.

Powiązane problemy