[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обсуждение темы безопасности
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9
Gabriel
Цитата (twin @ 26.09.2009 - 19:30)
То есть вот в такой запрос можно сунуть все что угодно и ничего страшного никогда не произойдет.
PHP
$res = mysql_query("INSERT INTO `table` 
                               SET `login`='"
. mysql_real_escape_string($login) ."'
                               WHERE `id`="
. (int)$id );

И не нужно греть голову, чем и как заменить и какие символы отфильтровать. Да пусть они все хранятся в базе, на то они и символы. Главное правильно обработать данные для запроса.

может вопрос глупый а если я допустим делаю так
PHP
$var mysql_real_escape_string( isset( $_POST['var'] )?$_POST['var']:NULL  )

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

_____________
one step, two steps HERE WE GO!!!
twin
Цитата
Хотя символы и команды немного разное.

Команды состоят из символов.
Ты пойми, то, что находится в запросе между апострофов, попадет в базу. И запишется в ячейку как простой текст. Любые символы и любые их комбинации.
Выполниться команда может только в скрипте, когда станет частью кода. Вот этого допустить нельзя.
А писать в ячейку можно что угодно. Не нужно бояться и запрещать символы. Как говорится - всех не перестреляете. Отфильтруешь одно. пролезет другое.
Главное что бы это был текст, а не исполняемый код, тогда не страшно.
Цитата
а не в самом запросе насколько ето будет правильно или есть возможность подмены переменной или еше чегото??

Нет, подмены не будет. Это просто затрудняет читабельность, так как в запросе не ясно, обработаны данные или нет. Придется искать эту обработку черти где, что бы убедиться. По этому лучше решать проблемы по мере поступления. А именно в самом запросе.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Gabriel
twin
тоже правильно, спасибо за обьяснение

_____________
one step, two steps HERE WE GO!!!
SunSet
twin
Это я понимаю, что буква делает слово, слово фразу, фраза предложение, абзац.. скрипт и т.д.
Просто там делалось ударение если разрешены спец символы, например, для поля пароля, так как дополнительные символы лучше для безопасности пароля, но хуже для безопасности самого сайта. Вот тогда говорилось что есть смысл запрещать основные команды sql.
И еще ньюанс, про функцию char (). Будто ей можно любой символ в числовом значении ввести, а числа разрешены. Потому и эту фигню нужно запрещать. Хотя может это я чтото откопал, что уже не используется.

_____________
... и помните! Каким бы ни был PHP, главное - чтобы он был защищенным! :) (PHP с Анфисой Чеховой)
twin
Цитата
но хуже для безопасности самого сайта.

Вот такие бредни пишут люди, которые так и не поняли механизмов взаимодействий. Не стоит верить всему, что пишут в интернете. Нужно просто разобраться что есть что, и вопросы сами пропадут.
Цитата
И еще ньюанс, про функцию char (). Будто ей можно любой символ в числовом значении ввести, а числа разрешены. Потому и эту фигню нужно запрещать.
Где запрещать? В твоем коде? Если текст извне не пускать в код, то char () это последовательность букв и двух скобок. Не более того.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
SunSet
twin
Может и бредни, я не спорю, так как не я об этом писал книгу.
Вот пример что имелось ввиду.
Свернутый текст
user posted image


_____________
... и помните! Каким бы ни был PHP, главное - чтобы он был защищенным! :) (PHP с Анфисой Чеховой)
twin
Это что за костыль? Просто даже любопытно очень, кто автор этого шедевра.
Даже с того, что видно в этом куске, можно сделать вывод, что писано оно мягко скажем как попало. Фильтровать с помощью регулярных выражений, не пущать, запретить!!!!
Вот смотри: ((((((( Видишь сколько скобок? А вот: ))))) А вот тебе char(0х13). А Вот ваще атас: DROP TABLE. Если бы этот форум писал автор этого шедевра, я не смог бы сейчас тебе так наглядно это показать. Запрещено. Регулярками порезано.
Запомни - запрет использования символов - первый признак дилетанства. И приманка для хакеров. Раз чел неумеет работать с данными, значит там кругом дыры. А оно так и есть.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
SunSet

Цитата (twin @ 7.10.2009 - 00:54)
Просто даже любопытно очень, кто автор этого шедевра

Фленов smile.gif

Цитата (twin @ 7.10.2009 - 00:54)
Запомни - запрет использования символов - первый признак дилетанства.

Погодь, так везде же твердится запрещать все, а разрешать только нужное, не так ли? Или я чтото не доганяю сейчас?

_____________
... и помните! Каким бы ни был PHP, главное - чтобы он был защищенным! :) (PHP с Анфисой Чеховой)
twin
Цитата
Погодь, так везде же твердится запрещать все, а разрешать только нужное, не так ли?

Где твердится? Филенов твой, как я понял, недалеко от Попова находится.

Есть ситуации, когда оправдана валидация. Но это не запрет. Это разрешение. То есть можно только то, что разрешено. Остальное нельзя. Допустим, если тебе в каком то месте нужна только кирилица, нельзя запрещать латиницу. Потому что есть еще иврит. И иже с ним. Всех не перевешаешь. Нужно разрешить кирилицу, остальное запретить.
Но это ни коем образом не касается безопасности. Это специфика каких то документов к примеру. И уж тем более никак не касается SQL.


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Порылся в сети. Да можно было и не рыться, и так ясно:
Цитата
творчество товарища Фленов направлено не на передачу знаний(коих зачастую не хватает в описываемых им областях), а на зарабатывание денюшек.

даже одного взгляда на кол-во и тематику его книг достаточно, чтобы оценить качество его писанины.

Фленов - говно редкостное =)

Чего только стоит серия книг “Фленова” (линукс|с|Delphi|php) глазами хакера. Это насколько надо любить деньги, что бы писать такую чушь,


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
SunSet
twin
Моя твоя не понимать)) Помню - коснулся вопрос о вот такой безопасности, чтото я там распрашивал, мне посоветовали читать ПХП для хакера. Так как все обьяснять нету смысла - надо читать книгу. Поискал, вроде то что рекомендовали, так как уже узконаправленно на вопросы безопасности, казалось. (Это тогда когда я первым раз придумал слово "отмануалить" smile.gif ) Прочитал, покрутил ту книгу, вроде все ясно. Теперь получается что Фленов - брат Попова, sergeiss - почти то же самое сказал про Ульмана "Осн прогр на ПХП". Что ж читать то? smile.gif )) Дай автора, который полностью соответствует твоим понятиям "нормально разбирающегося в пхп человека".

_____________
... и помните! Каким бы ни был PHP, главное - чтобы он был защищенным! :) (PHP с Анфисой Чеховой)
twin
Читать надо мануал. И лучше на английском. Больше веры никому нет. Даже такие монстры как Кузнецов и Симдянов иногда допускают ляпы.
В принципе читать можно и нужно всё. Другое дело как читать.
И уж точно не верить наслово всяким фленовым и поповым.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Sylex
SunSet
автор этого бреда явно не понимает что такое экранирование данных, тьфу блин...

авторы по PHP есть нормальные, вот тока я их не помню laugh.gif

_____________
Я думал я буду сеять добро, но у меня не получилось. Во-первых, мне помешали, во-вторых я сам отрекся от этой идеи.
glock18
Zeev Zuraski и Andy какой-то. думаю, что авторы. Если не ошибаюсь, написали пару книг по тематике. И кто не знает, именно они написали zend и достаточно активно участвовали в разработке самого php. если кого и читал бы, то именно их.
haZe
twin, зря ты так! Замечательная статья, вот например про четвертый пункт вообще не знал, теперь учту. По поводу второго пункта жутко парился, писал здоровенные функции, с кучей всякого мусора, а оказывается все так просто. Про третий вообще не задумывался и не знал как бороться.
Спасибо большое! Как только смогу, сразу скажу спасибо на я.
Надеюсь будет продолжение?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.