ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра

  #31  
Старый 02.01.2008, 03:15
.Slip
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме:
21768337

Репутация: 3486


По умолчанию

intval(), mysql_escape_string()
=\
__________________
..
 

  #32  
Старый 02.01.2008, 04:00
Piflit
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме:
5128756

Репутация: 2032


Отправить сообщение для Piflit с помощью ICQ
По умолчанию

как я понял, прочитав http://forum.antichat.ru/thread30641.html
при вводе (+заключаем в кавычки).
1. если число, intval();
2. если строка, mysql_escape_string();
+заключаем в кавычки.
3. при выводе htmlspecialchars();
все?

PHP код:
INSERT INTO table (loginpassVALUES ('".$_POST["login"]."','".$_POST["pass"]."'); 
PHP код:
SELECT pass FROM table WHERE login '".$_POST["login"]."'
если кавычки (') стоят в самом запросе, то можно вообще ничего не экранировать?

Последний раз редактировалось Piflit; 02.01.2008 в 04:09..
 

  #33  
Старый 02.01.2008, 04:08
.Slip
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме:
21768337

Репутация: 3486


По умолчанию

Цитата:
1. если число, intval();
2. если строка, mysql_escape_string();
Третий пункт выкидываай из своего понимания. Проверка на существование (isset()) и выборка целого числа в первом случае (если кто то пихает херню с -, то можно добавить bcmod()), во втором случае окружение кавычками и экранирование.
__________________
..
 

  #34  
Старый 02.01.2008, 04:15
Piflit
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме:
5128756

Репутация: 2032


Отправить сообщение для Piflit с помощью ICQ
По умолчанию

Цитата:
Сообщение от .Slip  
Третий пункт выкидываай из своего понимания.
почему? а <скрипт> итп при выводе?
Цитата:
Сообщение от .Slip  
Проверка на существование (isset()).
на существование чего? не понял.
Цитата:
Сообщение от .Slip  
во втором случае окружение кавычками и экранирование.
что еще нужно экранировать после mysql_escape_string();?
 

  #35  
Старый 02.01.2008, 04:43
ettee
Administrator
Регистрация: 12.10.2006
Сообщений: 466
Провел на форуме:
17234747

Репутация: 5170
По умолчанию

PHP код:
< > " ' % ; ) ( & + 
Так же смотри не происходить ли автоматическое преобразование символов.
Не забываем про фокус замены символа пробела на
PHP код:
/**/ 
Надежней пропускать только то что разрешено, чем блокировать "черные списки".
По возможности использовать HttpOnly-cookies. Параноикам поможет шифрование cookie.
При нападение с помощью TRACE метода претензии к хостеру.
PHP код:
TraceEnable off 
 

  #36  
Старый 02.01.2008, 10:17
Macro
Постоянный
Регистрация: 11.11.2006
Сообщений: 595
Провел на форуме:
1845062

Репутация: 1079


По умолчанию

Да что вы тут развели дискуссию? Все повторяют сообщения, которые тут уже написаны. Для проверки любых данных на sql инъекцию, xss или инклуд,
способов не так уж и много!

Для проверки sql строк достаточно mysql_real_escape_string()

Все числовые параметры sql стоит писать через intval()

Для защиты от xss вполне хватит функции htmlspecialchars() либо htmlentities()

Проверка на кириллицу вот - $str=preg_replace('/[^а-я]/i','',$str);

Если нужна проверка на инклуд.
Во первых, инклудить лучше файлы с префиксом, например
include('./inc/inc_'.$_GET['page']);
Во вторых, лучше приписывать расширение к файлу и желательно, чтобы это расширение не было '.php' .
include('./inc/inc_'.$_GET['page'].'.inc');
В третьих, существование файла надо проверять и фильтровать точки .
$_GET['page']=str_replace('.','',$_GET['page']);
file_exists('./inc/inc_'.$_GET['page'].'.inc')?include('./inc/inc_'.$_GET['page'].'.inc'):echo('неверный файл');
На все вопросы автора ответили уже

Последний раз редактировалось Macro; 02.01.2008 в 10:27..
 

  #37  
Старый 02.01.2008, 13:51
GreenBear
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
Провел на форуме:
19975136

Репутация: 4536


Отправить сообщение для GreenBear с помощью ICQ
По умолчанию

Цитата:
$_GET['page']=str_replace('.','',$_GET['page']);
наверное правильнее регуляркой проверять на допустимые символы, чем вырезать все недопустимые, так ведь?
 
Закрытая тема



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В вопросе защиты персональных данных граждане надеются на государство dinar_007 Мировые новости 0 18.01.2006 22:15
Долбим Sql’ные базы данных k00p3r Чужие Статьи 0 13.06.2005 14:13
Sql инъекция и Oracle, часть первая k00p3r Чужие Статьи 0 13.06.2005 11:23
Защищаем MySql. Шаг за шагом k00p3r Чужие Статьи 0 13.06.2005 11:18
SQL Injection в Oracle k00p3r Чужие Статьи 0 12.06.2005 12:41



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ