![]() |
Показаны 15 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- Безопасность в скриптах (http://netadmin.ws/forum/showthread.php?threadid=7999)
Безопасность в скриптах
Вот хочется узнать народные методы повышения безопасности скриптов.
Особенно интересны методы предотвращения SQL Injection и Code Injection.
Ну если есть просвященные по XSS тоже буду рад почитать.
Чуть по позже опишу свои параноидальные идеи 
__________________
No pity, no mercy, no regret.
Моё скромное 
Советы банальны, проверять ВСЕ приходящие от пользователя переменные на валидность... и будет вам счастье... 
__________________
Админ - вождь Апачей...
Я спрашивал методы =) Проверять можно по разному.
Можно держать в голове и в одном месте ошибится, можно предоставить это самому скрипту, но тут тоже загвоздки есть.
__________________
No pity, no mercy, no regret.
Особо нужно проверять те значения которые потом будут использоваться при обращении к базе. Ошибаться тут не нужно, так как каждая ошибка это дыра в скрипте.
__________________
Всегда есть решение.
quote:
Можно держать в голове и в одном месте ошибится, можно предоставить это самому скрипту, но тут тоже загвоздки есть.

__________________
Админ - вождь Апачей...
quote:
Берешь ты из GET-a цифру, так проверь, что это цифра или скажи ей что она цифра
quote:
Особо нужно проверять те значения которые потом будут использоваться при обращении к базе. Ошибаться тут не нужно, так как каждая ошибка это дыра в скрипте.
__________________
No pity, no mercy, no regret.
У каждого свои методы программирования, глобализовать только нужные переменные легко, но вто как их сразу проверить? Ну можно сделать общие проверки типа trim, ну еще удалить javascript, иметь общие название например для передаваемых ID (они опаснее всего и чаще всего передаются) и превратить их в intval, на этом дело заканчивается. Далее нужно все проверять индивидуально, я к тому что нельзя написать универсальную функцию для этого.
__________________
Всегда есть решение.
Замечательная функция:
function xss_clean($var)
{
$var = preg_replace( '/javascript/i', 'java script', $var );
$var = str_replace( '"', '"', $var );
$var = str_replace( '<', '<', $var );
return str_replace( '>', '>', $var );
}
__________________
`
SiteMaker.Ru - Академия сайтостроительства
quote:
которая валидирует практически любой юзер-инпут: начиная с интов, флоатов, email, и кончая IP с разными условиями и MAC адресами
__________________
No pity, no mercy, no regret.
field_validator($field_descr, $field_data, $field_type, $min_length="", $max_length="", $field_required=1)
__________________
`
SiteMaker.Ru - Академия сайтостроительства
Denveroid понятно, просто ты ручками обрабатываешь входные переменные, поочередно прогоняя их через эту функцию, самостоятельно указывая тип.
__________________
No pity, no mercy, no regret.
Vanish
Совершенно верно. Ну а чего тут велосипед придумывать то? 
__________________
`
SiteMaker.Ru - Академия сайтостроительства
Denveroid
Не перегружая обработчик повторами функций можно записать
$typed_text = htmlspecialchars($typed_text, ENT_QUOTES);
function xss_clean($var)
{
$var = preg_replace( '/javascript/i', 'java script', $var );
$var = str_replace( '"', '"', $var );
$var = str_replace( '<', '<', $var );
return str_replace( '>', '>', $var );
}
__________________
Есть вопросы спрашивайте!
Господа, а не забацать ли нам класс по этому поводу ? ... Один глобальный класс , который решит проблемму приходящей от конечного пользователя информации .
P.S.: Не слушайте пьяных людей (что-то последнее время очень часто дни рождения у юзеров )
__________________
Ковчег построили дилетанты, а профессионаллы построили "Титаник" - не бойтесь спрашивать то , чего вы не знаете , а так же делать то - чего не умеете ! 
что то господ на чистую воду не вывести, жмутся...
вспомним венгерскую нотацию, там же тип в имени переменной указывается, а это шаг к возможности определения типа переменной в скрипте и проверка на валидность пришедших данных.
__________________
No pity, no mercy, no regret.
| Формат времени GMT. Текущее время 12:36. | Показаны 15 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.