?

Log in

No account? Create an account
Ни о какой безапелляционности в моих высказываниях не может быть и речи! [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

_GET и mysql_query: служебный роман [июн. 1, 2013|03:23 pm]
Anatoly Vorobey
[Tags|]

_GET и mysql_query вместе

75 тысяч результатов.

Это из реддита с прекрасным названием lolphp, в котором есть много смешного - например, вот эта лошадь:

СсылкаОтветить

Comments:
[User Picture]From: _winnie
2013-06-01 01:37 pm
на первой страничке 2/3 результатов кажется не уязвимость, а тесты сервиса (test04.php) или тесты уязвимостей "sampleSQLInjection.php"
(Ответить) (Thread)
[User Picture]From: romikchef
2013-06-01 02:01 pm
Ну, зато дальше там адок начинается стопроцентный, без скидок :)
Я бы сказал, что проблема даже не в уязвимости - само по себе нахождение этих двух токенов в одном файле не означает обязательное её наличие - а, скорее, в общей культуре "пхп кодинга". По-хорошему, _GET и mysql_query не должны встречаться в рамках одного скрипта вообще.

Edited at 2013-06-01 14:06 (UTC)
(Ответить) (Parent) (Thread)
From: 109518
2013-06-01 02:34 pm
Ну, (int)$_GET[id] уже на третей странице есть, mysql_real_escape_string я правда не нашёл.
(Ответить) (Thread)
[User Picture]From: romikchef
2013-06-01 02:50 pm
Найти-то легко - просто добавив её в поиск. Функции искейпинга строк встречаются в одной трети найденных скриптов.
Другое дело что она, в отличие от (int), никак не гарантирует защиту.
(Ответить) (Parent) (Thread)
From: 109518
2013-06-01 02:57 pm
Сама по себе не гарантирует, но если правильно использовать то проблем не будет

Вот тут например об этом

http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string

Или ?
(Ответить) (Parent) (Thread)
[User Picture]From: bolk
2013-06-01 02:44 pm
Ну да, в PHP тернарный оператор левоассоциативный. Это надо просто знать, не вижу тут поводов для смущения только из-за того, что ребята из других языков привыкли, что всё работает иначе.
(Ответить) (Thread)
[User Picture]From: breqwas
2013-06-01 03:11 pm
"Дети, это нельзя понять, это можно только запомнить" (с)
С того же подреддита:

(Ответить) (Parent) (Thread)
[User Picture]From: bolk
2013-06-01 03:14 pm
Да уж прям. Какое место вы не понимаете? Тут просто действуют несколько разных правил.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: alexis_m
2013-06-01 05:15 pm
я до сих пор не помню (а может и не знаю), какая ассоциативность у тернарного оператора где бы то ни было.
Стараюсь не писать их вложенными, потому что получается нечитаемая конструкция. А приходится, то ставлю скобки, потому что иначе получается нечитаемая конструкция.
(Ответить) (Parent) (Thread)
From: huzhepidarasa
2013-06-01 07:57 pm
Какой-то злобный садист придумал и вставил в PHP левоассоциативный тернарный оператор для запугивания бедных нубов. Или это хитрый тактический прием для введения в заблуждение потенциального противника, я не понял? Кому и зачем еще может понадобиться такая штуковина? В каком смысле, кроме перечисленных выше, она «работает»?
(Ответить) (Parent) (Thread)
[User Picture]From: _winnie
2013-06-01 10:44 pm
В случае создания php вопрос "почему" не имеет смысла
Тут работает бритва хэнлона
(Ответить) (Parent) (Thread)
[User Picture]From: deone
2013-06-01 03:47 pm
весело!)
(Ответить) (Thread)
[User Picture]From: meshko
2013-06-02 02:00 am
Я давно говорю, что пора начинать писать фронтенд на PHP. Как ответ Node.js
(Ответить) (Thread)
From: aso
2013-06-05 12:32 pm
Я практически не понимаю, как такое может быть.
(Ответить) (Thread)