ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

02.01.2008, 03:15
|
|
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме: 21768337
Репутация:
3486
|
|
intval(), mysql_escape_string()
=\
|
|
|

02.01.2008, 04:00
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
как я понял, прочитав http://forum.antichat.ru/thread30641.html
при вводе (+заключаем в кавычки).
1. если число, intval();
2. если строка, mysql_escape_string();
+заключаем в кавычки.
3. при выводе htmlspecialchars();
все?
PHP код:
INSERT INTO table (login, pass) VALUES ('".$_POST["login"]."','".$_POST["pass"]."');
PHP код:
SELECT pass FROM table WHERE login '".$_POST["login"]."';
если кавычки (') стоят в самом запросе, то можно вообще ничего не экранировать?
Последний раз редактировалось Piflit; 02.01.2008 в 04:09..
|
|
|

02.01.2008, 04:08
|
|
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме: 21768337
Репутация:
3486
|
|
1. если число, intval();
2. если строка, mysql_escape_string();
Третий пункт выкидываай из своего понимания. Проверка на существование (isset()) и выборка целого числа в первом случае (если кто то пихает херню с -, то можно добавить bcmod()), во втором случае окружение кавычками и экранирование.
|
|
|

02.01.2008, 04:15
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
Сообщение от .Slip
Третий пункт выкидываай из своего понимания.
почему? а <скрипт> итп при выводе?
Сообщение от .Slip
Проверка на существование (isset()).
на существование чего? не понял.
Сообщение от .Slip
во втором случае окружение кавычками и экранирование.
что еще нужно экранировать после mysql_escape_string();?
|
|
|

02.01.2008, 04:43
|
|
Administrator
Регистрация: 12.10.2006
Сообщений: 466
Провел на форуме: 17234747
Репутация:
5170
|
|
Так же смотри не происходить ли автоматическое преобразование символов.
Не забываем про фокус замены символа пробела на
Надежней пропускать только то что разрешено, чем блокировать "черные списки".
По возможности использовать HttpOnly-cookies. Параноикам поможет шифрование cookie.
При нападение с помощью TRACE метода претензии к хостеру.
|
|
|

02.01.2008, 10:17
|
|
Постоянный
Регистрация: 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..
|
|
|

02.01.2008, 13:51
|
|
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
Провел на форуме: 19975136
Репутация:
4536
|
|
$_GET['page']=str_replace('.','',$_GET['page']);
наверное правильнее регуляркой проверять на допустимые символы, чем вырезать все недопустимые, так ведь?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|