Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вопрос
Форумы портала PHP.SU » Разное » Колонка администратора » Вопрос

Страниц (1): [1]
 

1. Demius - 29 Июля, 2007 - 10:38:08 - перейти к сообщению
НА одном из форумов встретил вот такое сообшение

Цитата:
Не мог придумать, что написать
Решил написать, как избавиться от самых известных багов.
XSS.

PHP код:
<?
...
$_REQUEST['xss'] = htmlspecialchars($_REQUEST['xss']);
echo($_REQUEST['xss']);
...
?>

PHP-include.

PHP код:
<?
...
if($_REQUEST['file'])
{
$_REQUEST['file'] = str_replace('/','',$_REQUEST['file']);
$_REQUEST['file'] = str_replace('%','',$_REQUEST['file']);
$_REQUEST['file'] = str_replace(':','',$_REQUEST['file']);
include($_REQUEST['file']);
}
...
?>

SQL-injection.

PHP код:
<?
...
$_REQUEST['id'] = str_replace("'","",$_REQUEST['id']);
$_REQUEST['id'] = str_replace('-','',$_REQUEST['id']);
$_REQUEST['id'] = str_replace('+','',$_REQUEST['id']);
$_REQUEST['id'] = str_replace('/','',$_REQUEST['id']);
$_REQUEST['id'] = str_replace('*','',$_REQUEST['id']);
$_REQUEST['id'] = str_replace(' ','',$_REQUEST['id']);
mysql_query('UNION SELECT id FROM news WHERE id='.$_REQUEST['id']);
...
?>



Как думаете это помож избавиться от атак?
2. valenok - 30 Июля, 2007 - 11:47:53 - перейти к сообщению
Вот штраф вам поможет избавиться от невнимательности и писать в соответствующих разделах форума.

--
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. ...
  4. $_REQUEST['xss'] = htmlspecialchars($_REQUEST['xss']);
  5. echo($_REQUEST['xss']);
  6. ...
  7. ?>


Это поможет если правильно использовать,
а не тупо вставить в начало скрипта эти две строки.




PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. ...
  4. if($_REQUEST['file'])
  5. {
  6. $_REQUEST['file'] = str_replace('/','',$_REQUEST['file']);
  7. $_REQUEST['file'] = str_replace('%','',$_REQUEST['file']);
  8. $_REQUEST['file'] = str_replace(':','',$_REQUEST['file']);
  9. include($_REQUEST['file']);
  10. }
  11. ...
  12. ?>
  13.  


никогда в жизни не писал такой конструкции и не позволял пользователям указывать что инклудить.



PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. ...
  4. $_REQUEST['id'] = str_replace("'","",$_REQUEST['id']);
  5. $_REQUEST['id'] = str_replace('-','',$_REQUEST['id']);
  6. $_REQUEST['id'] = str_replace('+','',$_REQUEST['id']);
  7. $_REQUEST['id'] = str_replace('/','',$_REQUEST['id']);
  8. $_REQUEST['id'] = str_replace('*','',$_REQUEST['id']);
  9. $_REQUEST['id'] = str_replace(' ','',$_REQUEST['id']);
  10. mysql_query('UNION SELECT id FROM news WHERE id='.$_REQUEST['id']);
  11. ...
  12. ?>


Боже мой...
не заходите больше на тот форум, или хотябы не читайте того автора больше.



А теперь если вас вообще интересует безопасность в php
то почитайте следующее..
А если не интересует не тратьте своё время..

http://phpclub[dot]ru/detail/ (4 строчка в списке)
http://www.php.net/manual/ru/security.php

 

Powered by ExBB FM 1.0 RC1