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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: уязвимости

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
cooperok
Отправлено: 08 Октября, 2012 - 22:26:26
Post Id


Частый гость


Покинул форум
Сообщений всего: 137
Дата рег-ции: Сент. 2011  
Откуда: Los Angeles, California


Помог: 0 раз(а)




Здраствуйте, не подскажите есть ли программа какая то что б в скрипте найти уязвимости
пользовался сайтом http://find-xss[dot]net/scanner/
нашел 96 уязвимостей, исправлял если числовая переменная то с помощью
$id=(int)$_GET['id'];
если текст то $text=mysql_real_escape_string($text)

но вот думаю может остались где то узявимости, вот интерисует либо программа что б скрипт проверила, либо уже на сайте проверяла


-----
This forum is vulnerable. I want to replace forum engine.
(c) OrmaJever
 
 Top
KingStar
Отправлено: 08 Октября, 2012 - 22:39:02
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




cooperok а что будет, если передать в переменную $_GET['id'] отрицательное значение???



по сути - Acunetix (из платных)


-----
То что программа работает, не означает что она написана правильно!
 
 Top
cooperok
Отправлено: 08 Октября, 2012 - 22:42:23
Post Id


Частый гость


Покинул форум
Сообщений всего: 137
Дата рег-ции: Сент. 2011  
Откуда: Los Angeles, California


Помог: 0 раз(а)




KingStarточно, спс


-----
This forum is vulnerable. I want to replace forum engine.
(c) OrmaJever
 
 Top
Okula
Отправлено: 08 Октября, 2012 - 22:47:30
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




cooperok, не стоит пологаться на программу. Нужно самому отслеживать данные и проверять что идёт в запись или на выход.
Как самое простое:
Фильтрация чисел из POST или GET (для исключения отрецаельных чисел используется функция abs() ):
PHP:
скопировать код в буфер обмена
  1. $int = empty($_GET['int']) ? 0 : abs((int)$_GET['int']);

Перед записью в БД фильтровать числовые данные так как написано строкой выше, строковые данные:
PHP:
скопировать код в буфер обмена
  1. $string = empty($_POST['str']) ? FALSE : mysqli_real_escape_string($db_link, trim($_POST['str']));
  2. if($string !== FALSE) {
  3.     // запись в базу
  4. }

Касается всех запросов где используются переменные из вне.
Перед выводом строковых данных на экран фильтровать данные таким способом (использую пользовательскую функцию):
PHP:
скопировать код в буфер обмена
  1. /**
  2.  * Фильтрация от XSS с заменой переноса строки на <br>
  3.  *
  4.  * @param string $string входная строка
  5.  * @return string
  6.  */
  7. function escape($string) {
  8.     return nl2br(stripslashes(htmlspecialchars($string, ENT_QUOTES, 'utf-8')));
  9. }
  10.  
  11. echo escape($str);

(Отредактировано автором: 08 Октября, 2012 - 22:49:09)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB