|
|
|
| Здравствуйте! Я вновь поднимаю тему о безопасности. На моем сайте стали появляться iframe содержащие вирусы. Что указывает на XSS уязвимость. Я запустил проверку сайта X-spider 7.5. Программа показала что доступен метод Trace.
В .httpacces я прописываю TraceEnable Off но при повторном сканировании уязвимость остается.
Скажите, как отключить метод Trace. И на сколько он опасен?
Так же хочу заверить, что все данные получаемы от пользователя (GET и POST) я пропускаю через функцию:
<?
function stop_xss($text){
$text = trim(htmlspecialchars(stripslashes($text)));
if(!get_magic_quotes_gpc()){
$text = mysql_escape_string($text);
}
return $text;
}
?>
|
Cookie не использую.
Пароль на ftp сложный.
Скажите, на сколько моя функция совершенна? | |
|
|
|
|
|
|
|
для: job
(17.09.2009 в 08:02)
| | Давайте пока говорить о работоспособности.
[поправлено модератором] | |
|
|
|
|
|
|
|
для: neadekvat
(17.09.2009 в 09:04)
| | безусловно!
Обрезаю пробелы
заменяю спец символы на их графическое отображение
перекрываю кавычки слешем
мнемонизирую страку для SQL запроса
Вы считаете что моя функция не работоспособна????
Что вы предлогаете заменить или усовершенсвовать в ней?
А что насчет метода Trace? | |
|
|
|
|
|
|
|
для: Job
(17.09.2009 в 09:40)
| | а $text после обработки данной функции где используется?
магические кавычки надо отключать ДО обработки глобальных переменных PGC! | |
|
|
|
|
|
|
|
для: Job
(17.09.2009 в 09:40)
| | Спокойнее, я понимаю и один знак вопроса.
Спросил я, потому что многие тупо лепят функции, не знамо зачем
Так же хочу заверить, что все данные получаемы от пользователя (GET и POST) я пропускаю через функцию:
|
Вот из-за чего я спрашиваю. Если данные добавляются в бд, то конечно, нужно прослешить строку. А если отсылаются на мыло - то это бесполезное занятие | |
|
|
|
|
|
|
|
для: job
(17.09.2009 в 08:02)
| | Хм... возможно пароль на FTP похищен с вашей клиентской машины - проверьте лучше на трояны все машины с которых осуществляется FTP-доступ и смените FTP-пароль.
Обычно перед сохранением в базу данных, данные на XSS не проверяются - это не продуктивно (их сложно потом редактировать), данные проверяются на XSS перед выводом непосредственно в браузер. Лучше разделить функцию на две - одна проверяет данные перед сохранением данных, другая перед выводом в барузер. | |
|
|
|
|
|
|
|
для: job
(17.09.2009 в 08:02)
| | >Скажите, на сколько моя функция совершенна?
Для полноты картины не хватает функции strip_tags(). И тогда уж точно будет stop_xss.
Вам сюда. И поверьте, это поможет. | |
|
|
|
|
|
|
|
для: Николай2357
(17.09.2009 в 10:43)
| | :)))
Функцию я использую для форматирования текста и последующего его использования в БД MySQL. Это может быть как и SELECT так и INSERT запрос. Меня немного волнует что после применения функции % и _ в переменной $text никак не перекрываются.
поражен проницательностью cheops! )) я вспонил что когда еще только купил домен и на сайте был один index.html через некоторое время в него был дописан вредоностный код...
Значит дело скорее всего в краже пароля.
Так же согласен что лучше было бы разделить на две функции ... действительно есть проблемы с редактированием. подумаю над этим...
И всё же этой функции stop_xss будет достаточно для предотвращения sql-инъекций и xss уязвимостей?
И какой функцией можно избавиться от % и _ ?
метод Trace опасен? | |
|
|
|
|
|
|
|
для: Job
(17.09.2009 в 13:12)
| | >И всё же этой функции stop_xss будет достаточно для предотвращения sql-инъекций и xss уязвимостей?
Следуя этой логике, нужно сделать так:
<?
if(isset($_POST, $_GET, $_COOKIE, $_REQUEST........ )
die('Ой, боюсь, боюсь!');
|
Нельзя лепить в одну кучу все, что где то когда то увидел и считать, что всё надежно и хорошо. Всё длжно быть на своих местах.
Все, кто решил эту задачу, совершенно иначе смотрят на обработку данных, нежели раньше.
Сию тему продолжать бессмыслено, так как все сведется именно к тому. | |
|
|
|