Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Какие есть минусы у htmlentities? (https://forum.antichat.xyz/showthread.php?t=120755)

strecher 15.05.2009 17:40

Какие есть минусы у htmlentities?
 
Есть ли какие либо проблемы с использованием данного кода для фильтрации запросов? Если да, то какие. Использую PHP + MySQL.
В данный момент это самый безопасный (инхо) метод фильтрации запросов который я нашёл. Инклуд в начало каждого скрипта который обрабатывает запросы.
Спасибо.

PHP код:

function antixss($str) {
$str htmlentities($strENT_QUOTES);
return 
$str;
}

foreach(
$_POST as $name => $value) {
$_POST[$name] = antixss($value);}
foreach(
$_GET as $name => $value) {
$_GET[$name] = antixss($value);} 

P.S. Если минусов нет, то почему все не пользуются этой функцией?

Dimi4 15.05.2009 17:46

самое банальное, если у тебя запрос типа:
Код:

SELECT * from table where id=$_GET['id']
то толку от твоей функции ноль

А также если в скрипте юзаются бинарно зависимые функции, она не спасет. Например инклуд (на %00 не отреагирует)

Sharky 15.05.2009 17:51

лучше уж тогда htmlspecialchars

Dimi4 15.05.2009 18:04

От хсс тоже не всегда спасет. Представим что у тебя скрипт обрабатывает этой функцией бб коды.
например:
Код:

[colo r=$_GET['color']]$_GET['text'][/ color]
превращается в
Код:

<font style="color: $_GET['color']">$_GET['text']</font>
Вот хсс:
Код:

[colo r=green; background:url\(javascript:eval(alert(1))]qe[/ color]
будет:
Код:

<font style="color: green; background:url\(javascript:eval(alert(1)))">qe</font>

astrologer 15.05.2009 18:15

Про "фильтрацию" есть прикреплённая тема: статья про анти sql-inj.

nerezus 15.05.2009 18:45

Цитата:

P.S. Если минусов нет, то почему все не пользуются этой функцией?
Потому что это бред полный.
Ты портишь входящие данные.

Данные портить нельзя. Данные надо правильно использовать.


Время: 23:42