Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][HTML][PHP]Zabezpieczenie przed XSS
adrianozo
post
Post #1





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

Ostrzeżenie: (0%)
-----


Witam wszystkich.
Mam pewien problem. Posiadam na stronie formularz, który jest do wypełniania przez użytkowników i podczas testów coś mnie zaniepokoiło.
Po wpisaniu w pole formularza:

Kod
" /><script type="text/javascript">
alert("Uwaga!");
</script>


i przesłaniu go na ekranie pojawia się komunikat alert o treści Uwaga!.
Jak można się przed tym zabezpieczyć?

Proszę o pomoc. Z góry dziękuje (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Wicepsik
post
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


A szukałeś już w google? Ten temat już był omawiany kilkaset razy...
Go to the top of the page
+Quote Post
lobopol
post
Post #3





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


htmlspecialchars przy wyświetlaniu.
Go to the top of the page
+Quote Post
adrianozo
post
Post #4





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

Ostrzeżenie: (0%)
-----


Dzięki wielkie (IMG:style_emoticons/default/smile.gif)

Podziałało. Ja miałem napisaną funkcję, ale po prostu złe dane filtrowałem. Myślę, że teraz jest ok

Napotkałem jeszcze jeden problem związany z XSS, ale od strony JS, a konkretniej jQuery.

Chodzi o to, że do selectów dynamicznych pobieram dane z bazy danych. I dajmy na to w bazie znajdzie się wartość:
Kod
<script type="text/javascript">
alert("Uwaga!");
</script>


I teraz dodaje dynamicznie wartości z selectów funkcją after() w jQuery. Po dodaniu tych wartości do strony wstrzykuje się kod JS, który automatycznie pokazuje alert o treści Uwaga!. W PHP tak jak kolega wyżej podał wystarczyło htmlspecialchars, natomiast jak przefiltrować zmienne w JS?
Poszukałem troszkę w google i znalazłem stronę:

http://javascript-ajax.pl/2009/12/01/html-...ode-javascript/

ale nie bardzo wydaje mi się, że to coś da.

Jakie są wasze opinie? Może macie jakieś pomysły jak takie coś zrobić, lub wykorzystać skrypt z powyżej podanej strony?
Go to the top of the page
+Quote Post
lobopol
post
Post #5





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


pobierasz te wartości php i musisz je też nim wyświetlić, użyj htmlspecialchars
Go to the top of the page
+Quote Post
adrianozo
post
Post #6





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

Ostrzeżenie: (0%)
-----


Wyświetlam je tak:

Kod
$('a.add').click(function()
    {
        var category = $("#category option:selected").text();
        var sub_category = $("#sub_category option:selected").text();
        var sub_sub_category = $("#sub_sub_category option:selected").text();
        var ilosc = $("#ilosc option:selected").text();
        $(this).after('<div id="htmlspecialcharsInput"><label><br /><br /><strong>Rodzaj:</strong> '+category+' - <strong>Produkt:</strong> '+sub_category+' - <strong>Kolor:</strong> '+sub_sub_category+' - <strong>Ilość:</strong> '+ilosc+' <a href="#del" class="del">X</a><input type="hidden" name="cat[]" value="<strong>Rodzaj:</strong> '+category+' - <strong>Produkt:</strong> '+sub_category+' - <strong>Kolor:</strong> '+sub_sub_category+' - <strong>Ilość:</strong> '+ilosc+' "/></label></div>');
        return false;
    });


Więc nie robię tego w PHP. Dopiero jak klient wyśle formularz do PHP postem to wtedy je filtruje jako PHP, ale dodawane jest dynamicznie więc jak je doda to wyrzuca alerta, bo dodał jedną z opcji, którą jest:

Kod
<script type="text/javascript">
alert("Uwaga!");
</script>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 17:35