Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: snippets do bazy
Forum PHP.pl > Forum > PHP
Fixer
Mam następujący problem:

1. Mamy formularz, do którego użytkownicy wpisują kod (php/sql/js/i wiele innych...)
2. Zawartość formularza wysyłana jest do bazy danych mysql
3. Na końcu zawartość bazy z kodami jest wyświetlana (ale nie wykonywana) na stronie

Jak prawidłowo zabezpieczyć owy formularz przed XSS (Cross Site Scripting) oraz SQL Injection?

Zależy mi na tym aby kod z formularza był w bazie danych w postaci niezmienionej!
W chwili obecnej serwer ma włączony et_magic_quotes_gpc" title="Zobacz w manualu PHP" target="_manual co powoduje ze kod z:
echo ('text') jest zamieniany na echo (\'text\');
Fixer
no tak ale mysql_real_escape_string" title="Zobacz w manualu PHP" target="_manual dodaje mi ukośniki też do bazy mysql jak temu zaradzić?
StripSlashes" title="Zobacz w manualu PHP" target="_manual pomoże tutaj przy wyświetlaniu danych z bazy?
megawebmaster
Jak masz dostęp do .htaccess to możesz wyłączyć magic_quotes. Z poziomu skryptu chyba też się da.
Apocalyptiq
Ja co do zapobiegania SQL Injection polecam PDO i bindowanie parametrów (zmiennych).
Co do XSS właśnie htmlspecialchars.
dr_bonzo
Przejedz dane z $_POST/$_GET strip slashem (a lepiej wylaczyc te magic quotes).
Do bazy wrzucaj je wyeskejpowane (mysq_real_escape() lub jeszcze lepiej z uzyciem PDO).
Przy wyswietlaniu uzyj htmlspecialchars() co wypisze ci HTML zamiast go parsowac.
Spawnm
Cytat(megawebmaster @ 22.04.2009, 20:05:47 ) *
Jak masz dostęp do .htaccess to możesz wyłączyć magic_quotes. Z poziomu skryptu chyba też się da.

mogę prosić o informacje jak to zrobić ?
bełdzio
http://pl.php.net/manual/pl/function.ini-set.php

a jesli chodzi o htaccess to zapoznaj sie z dyrektywa php_value
Fixer
w pliku .htaccess dopisz:

php_flag magic_quotes_gpc Off
php_value magic_quotes_gpc Off
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.