Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   фильтрация данных на php (https://forum.antichat.xyz/showthread.php?t=57151)

DWORD 02.01.2008 14:01

фильтрация данных на php
 
Ответ в соседнюю, почему-то снова закрытую тему.


Цитата:

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

Нет, это демагогия. В общем случае, для защиты от XSS как минимум придется довольно долго искать особенности HTML/JS парсеров конкретных браузеров, потому что все остальное - это не защита от XSS, а отказ от предоставления услуг пользователю, ввиду не знания того, как от него защититься. И Точка.
Цитата:

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

Самое полезное регулярное выражение, с которым я когда либо сталкивался. Надо записать на бумажку.

Цитата:

Сообщение от Macro
Если нужна проверка на инклуд.
Во первых, инклудить лучше файлы с префиксом, например
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('неверный файл');
На все вопросы автора ответили уже :)

Это все не так. Технику защиты от PHP-инъекций вы тут грамотно не раскрыли. Хотя ответы действительно на все уже даны, только вот не в этой теме.

Цитата:

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


Самый главный вывод, который следует из той статьи звучит так:

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

Все. Это необходимое и достаточное условие. Видите ли, "SQL-инъекции", "PHP-инъекции", "XSS" не есть область информационной безопасности. Все эти проблемы исчезают ровно тогда, когда человек перестает быть студентом/самоучкой и становится программистом. У него уже рука просто-напросто не повернется написать код с широко известными вам всем дырами, потому что это элементарные вещи, вы все здесь играете в детский сад. Но вас так много, что вам кажется, что это нормально. Это ненормально. Все уязвимости, которые вы рассматриваете, в строгом смысле уязвимостями называть нельзя. Просто код с такими уязвимостями написан человеком, который не владеет стандартами, которыми пытается оперировать, а значит программистом считаться и не может.

NOmeR1 02.01.2008 15:16

Раз уж ты всё знаешь, приведи свои примеры защиты.

DWORD 02.01.2008 15:26

Цитата:

Сообщение от NOmeR1
Раз уж ты всё знаешь, приведи свои примеры защиты.

Эта фраза говорит о том, что ты не понял о чем идет речь. Нет никаких примеров защиты. Есть примеры функциональных программ, предоставляющих пользователю некоторые интерактивные возможности. Грамотность написания таких программ предполагает его "защиту" как неотъемлемую часть. Такие приложения у меня есть, но их код закрыт для широкой общественности, так что, к сожалению, помочь вам могу лишь наводящими фразами, ваша же задача понять о чем идет речь, это не так сложно.

ZaCo 02.01.2008 15:31

Цитата:

Любое веб приложение можно защитить от любой атаки, отличной от атаки грубой силой, если писать его, зная язык программирования, на котором ты его пишешь и протоколы, по которым общается твое приложение с сервером и клиентом.
+технологии используемые приложением

2NOmeR1 методики защиты скриптов для большинства пхп-программ вполне стандартные, но конкретны для каждой задачи. задача обеспечения безопасности естественно сводиться к задаче наложения определенных ограничений, делающих недоступным нежелаемое поведение пользователя-потенциального взломщика. ну, а задача наложений ограничений сводится к нескольким требованиям описанных DWORD'ом, не ясно какие могут быть вопросы? скажу одно - если возникают противоречивые требования ограничений, то проблема, очевидно, в самом проектировании приложения. если вам необходимо обрабатывать комментарии не как бб-теги, не как плайн-текст, а, например, как в жж, то совет об использовании htmlspecialchars отпадает - необходимо использовать встроенную технологию поиска\замены регулярных выражений, в каких-то ситуациях непосредственный и ручной парсинг - конечные автоматы и тп все за вас никто писать не будет: во-первых, есть готовые решения, во-вторых, никто не знает, что вам именно нужно.

Isis 02.01.2008 15:34

http://www.php.net
Closed

nerezus 02.01.2008 16:13

Isis, ты надоел. Данная тема требует, кстати, детального рассмотрения.

_Great_ 10.01.2008 00:42

Цитата:

Сообщение от ZaCo
+технологии используемые приложением

+ реализацию языка. и все. вообщем-то этого достаточно.

ZaCo, DWORD +1

Digimortal 10.01.2008 02:01

>> Любое веб приложение можно защитить от любой атаки, отличной от атаки грубой силой, если писать его, зная язык программирования, на котором ты его пишешь и протоколы, по которым общается твое приложение с сервером и клиентом.

ты как то все очень идеализируешь.. в том смысле, что утверждаешь, что можно создать идеальное с точки зрения безопасности веб-приложение любой сложности.. в теории, это может и возможно, но на практике на 100% это никогда недостижимо..
по такой простой причине, как ограниченность ресурсов при реализации любой задачи, будь то создание веб-приложения или чего-угодно еще..


>> Такие приложения у меня есть, но их код закрыт для широкой общественности

смелое утверждение.. ) обычно какую-либо разработку можно считать безопасной как раз только после того как она будет изучена широкой общественностью и пройдет проверку временем..

astrologer 10.01.2008 03:36

Цитата:

Любое веб приложение можно защитить от любой атаки, отличной от атаки грубой силой,
если писать его, зная язык программирования, на котором ты его пишешь и протоколы,
по которым общается твое приложение с сервером и клиентом.
Все. Это необходимое и достаточное условие.
Цитата:

+ Технологии, используемые приложением.
+ Реализацию языка. И всё. В общем-то, этого достаточно.
Пример: некто пишет веб-приложение, зная только php, html и http;
И получает XSS-уязвимость, хотя "необходимое и достаточное условие" было соблюдено.

С остальным согласен.

n-000 10.01.2008 05:05

На мой взгляд безопасность состоит не только в грамотно написаном приложении, но и от других факторов ... например правильном конфиге сервера . Ведь может получиться так что программер создал скрипт, а танкист админ неучёл всех нюансов ...
А человечиский фактор это распространнёная уязвимость -)


Время: 00:27