@phpclubru

Страница 536 из 956
Adel
10.04.2018
13:20:59
ненене

тоже самое. говнонизкоуровневое :)

Vladij
10.04.2018
13:21:27
ага

в пхп группе есть пхп-шники?

Google
Artem
10.04.2018
13:21:40
тоже самое. говнонизкоуровневое :)
да нифига там утиная типизация что сильно упрощает и нет всех этих ваших классов. Все очень приятно и просто. Почти как в пхп только чаще приходится нормальный код писать )

Viacheslav
10.04.2018
13:23:54
Ну показательно или не показательно дело такое, язык позволяет создавать. Насколько эффективно, можно поспорить, но достаточно большой круг задач решается без переключения на более эффективный язык. Если ты написал какую-то полезную утилиту на Perl, прицепить к ней GUI будет чаще всего проще и быстрее именно на Perl.

Artem
10.04.2018
13:24:54
если я напишу что то на Perl забаньте меня )

Viacheslav
10.04.2018
13:25:17
Ладно, мой камингаут - я лет 8 на Perl писал, да и сейчас бывает по мелким заказам

Artem
10.04.2018
13:26:01
эта падазрительна! Человек, который любит duck-typing, но при этом не любит Python... :)
я не говорил что не люблю питон, просто не вижу его применения за пределами DS и ML сегодня, после того как полюбил Go с его уникальной простотой, многопоточностью и возможностью очень просто собрать бинарник под любую платформу )

Lusive
10.04.2018
13:26:11
а подскажите новичку, можно ли в pdo подставлять get и post без обработки? это безопасно? $conn->prepare("INSERT INTO test ($_POST['column']) VALUES (?)"); $conn->execute( array($_POST['text']) );

Viacheslav
10.04.2018
13:26:45
Это нормально, это лечится. Выйдет какой-нибудь go-go, и любовь будет к нему.

Вообще клевый чат. Лучшие дискуссии не о PHP :)

Lusive
10.04.2018
13:28:12
Google
Artem
10.04.2018
13:28:52
Это нормально, это лечится. Выйдет какой-нибудь go-go, и любовь будет к нему.
так я не спорю, но сегодня он отлично решает свои задачи, писать на нем просто и чаще куда эффективней чем на чем то другом. А вообще уже вышли, есть например Pony. Он вполне с растом по скорости конкурирует, а Go делает, как ребенка )) https://www.ponylang.org/

Lusive
10.04.2018
13:29:12
может боты??
на самом деле я тоже бот, я просто нейронная сеть, которая учится с учителем, а ты сам программируешь?

Viacheslav
10.04.2018
13:29:16
О, прям спасибо, пойду подкину товарищу, он падок на новинки :)

Artem
10.04.2018
13:29:30
тут чето не помогают (
просто незнают.

Vladij
10.04.2018
13:29:40
?

Viacheslav
10.04.2018
13:29:48
У них на аватарках недостаточно сисек, чтобы помогать в вопросах, которые гуглятся

Lusive
10.04.2018
13:30:23
У них на аватарках недостаточно сисек, чтобы помогать в вопросах, которые гуглятся
так ты поэтому очки напялил, чтобы никто не видел что ты на сиськи пялишься, да?

Viacheslav
10.04.2018
13:30:34
Естественно.

Lusive
10.04.2018
13:32:45
или хотябы проверку
а зачем тогда pdo, если я все равно вручную проверку и обработку делать буду?

Vladij
10.04.2018
13:33:33
не вручную

проверку дабы иньекции небыло

Lusive
10.04.2018
13:35:15
проверку дабы иньекции небыло
приведи пример иньекции какая может быть в моем коде

Lusive
10.04.2018
13:35:56
но в документации сказано что PDO::prepare предотвращает иньекции

Google
Vladij
10.04.2018
13:35:57
не приведу

Pavel
10.04.2018
13:36:25
приведи пример иньекции какая может быть в моем коде
В $_POST['column'] передать строку начинающуюся с комментария SQL и дальше можно все что угодно творить

Lusive
10.04.2018
13:37:02
а приведи пример, пожалуйста, я попробую у себя выполнить

Vladij
10.04.2018
13:37:21
если указано что предотвращает значит отлично

Lusive
10.04.2018
13:38:22
внимательно читать надо
что именно я пропустил?

у Вас какой-то input?
да, из формы передается input name="column_name"

Viacheslav
10.04.2018
13:39:00
что именно я пропустил?
https://habrahabr.ru/post/148151/ - начинать читать отсюда, и до полного просвещения.

Vladij
10.04.2018
13:40:31
а приведи пример, пожалуйста, я попробую у себя выполнить
проще всего сделайте input на целые числа с проверкой

Lusive
10.04.2018
13:40:48
https://habrahabr.ru/post/148151/ - начинать читать отсюда, и до полного просвещения.
а там же не pdo, можешь привести пример как именно мой код можно сломать?

Lusive
10.04.2018
13:41:21
если там числа
там буквы, названия столбиков таблицы

Pavel
10.04.2018
13:41:36
а приведи пример, пожалуйста, я попробую у себя выполнить
INSERT INTO test ($_POST['column']) VALUES (?) id) VALUES (1); DROP table test; --Чонибудь типа такого

Viacheslav
10.04.2018
13:41:40
а там же не pdo, можешь привести пример как именно мой код можно сломать?
пофигу, pdo или нет. Понимание SQL инъекции будет базовым. Как говорил один из героев отличного рассказа Шекли, "чтобы задать правильный вопрос, нужно знать большую часть ответа".

Vladij
10.04.2018
13:42:22
там буквы, названия столбиков таблицы
тогда, я думаю, проще всего htmlspecialcharts()

Vladij
10.04.2018
13:43:04
это от XSS

Viacheslav
10.04.2018
13:43:40
Google
Artem
10.04.2018
13:44:58
ну так ты можешь привести пример как сломать этот код?)
prepare вроде ничего кроме эскейпинга не делает, просто используй bindParam и bindValue и не делай людям нервы ))

Lusive
10.04.2018
13:45:05
INSERT INTO test ($_POST['column']) VALUES (?) id) VALUES (1); DROP table test; --Чонибудь типа такого
а как дроп запишется в конце запроса, если пост находится в начале?

Viacheslav
10.04.2018
13:45:36
а как дроп запишется в конце запроса, если пост находится в начале?
я тебе уже скинул статью. Будь любезен, хотя бы пролистай ее

Pavel
10.04.2018
13:45:59
а как дроп запишется в конце запроса, если пост находится в начале?
Подставь эту строку в $_POST['column'] и ты увидишь что произойдет

Всмысле, какой запрос получится в результате

Artem
10.04.2018
13:48:16
Lusive
10.04.2018
13:50:14
попробуй что то вроде \xbf\x27 OR 1=1 /* передать
а что это означает, можешь объяснить?

Admin
ERROR: S client not available

Lusive
10.04.2018
13:51:42
вот смотрите, есть форма, там в name я могу написать что угодно, что надо написать, чтобы сломать базу?

Artem
10.04.2018
13:51:49
а что это означает, можешь объяснить?
как вариант вот еще "1' OR 1 LIMIT 1; --" я редко последнее время с базами общаюсь, только простейшие задачи, потому хз что именно будет работать -надо тыкать и смотреть. просто выведи запрос который получается и все сам увидишь. Передайет условие которое постоянно выполняется и результат вывода приодит которого ты не ожидаешь

Lusive
10.04.2018
13:51:50


name - это название столбика в таблице

Artem
10.04.2018
13:52:34
не это я тебе для селектов писал, для инсертов это не будет работать.

Pavel
10.04.2018
13:53:39
Надо просто минут 5 покумекать и составить подходящий запрос, но это уже лень )

вот смотрите, есть форма, там в name я могу написать что угодно, что надо написать, чтобы сломать базу?
Давай лучше так - ты дай ссылку на sqlfiddle с этим запросом, а тебе напишут код который что-нибудь ломает

Lusive
10.04.2018
13:54:20
Надо просто минут 5 покумекать и составить подходящий запрос, но это уже лень )
ну закумекай хотя бы 1 примерчик, хотя бы самый плохенький)

Artem
10.04.2018
13:54:31
попробуй что то вроде test’,(select password from mysql.user where user=’root’ limit 0,1),’test2’)-- - вставить в поле формы. и даже если не работает посмотри какой в итоге у тебя запрос получается

Pavel
10.04.2018
13:54:54
INSERT INTO test ($_POST['column']) VALUES (?) id) VALUES (1); DROP table test; --Чонибудь типа такого
Вот этот чем не подошел? Ты пробовал его в строку посылать?

Lusive
10.04.2018
13:58:53
Вот этот чем не подошел? Ты пробовал его в строку посылать?
этот ошибку выдает: Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in

Pavel
10.04.2018
14:00:13
Ты не выполняй этот запрос а просто в строку вставь вместо $_POST['column'] и посмотри что получится.

Google
Artem
10.04.2018
14:00:42
этот ошибку выдает: Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in
залей свой код на хостинг, мы поиграем, а ты потом логи посмотришь, в режиме ванги не интересно )

Vladij
10.04.2018
14:00:46
самый простой способ

?

Artem
10.04.2018
14:01:54
самый простой способ
есть закон - никогда не доверяй данным от пользователя. Все, что он делает -это атака. Потому просто приводи их к тому виду, которого ожидаешь как можно строже и запрещай отклонения.

Vladij
10.04.2018
14:02:50
а если, к примеру, постоянно изменяющиеся свойства?

Pavel
10.04.2018
14:03:20
Свойства чего?

Vladij
10.04.2018
14:03:55
ну возьмем, как правило, обычный запрос на апдейт, т.е. скрипт пополнения счета на сайте, пользователь может как на 1 единицу пополнить так и на 1 миллион

Adel
10.04.2018
14:04:05
а если, к примеру, постоянно изменяющиеся свойства?
твоя система должна точно знать что она может изменять

нельзя давать юзеру менять все что хочет.

Adel
10.04.2018
14:04:32
если уж так трудно, то можно и в базу сходить и узнать какие колонки есть у таблицы

Pavel
10.04.2018
14:05:22
Я не панимат что ты от нас хочешь

Vladij
10.04.2018
14:05:35
))

Pavel
10.04.2018
14:05:48
Это все что ты спрашиваешь, называется программирование. Валидация, алгоритм, ограничение, экранирование, вот это вот все.

Vladij
10.04.2018
14:06:01
та я понял)

Страница 536 из 956