Более безопасный способ обработки формы в php? - PullRequest
0 голосов
/ 08 ноября 2011

Безопасно ли делать что-то подобное в первую очередь, если на странице ctype_digit(base64_decode(trim($_POST['id']), или я должен сначала создать переменную внутри if и назначить ей триммер ($_POST['id']), потому что они могли бы поместить в него какую-то безумную вещь, которая могла быпереполнение base64_decode или ctype_digit например или я переоцениваю?

Ответы [ 3 ]

0 голосов
/ 08 ноября 2011

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

0 голосов
/ 08 ноября 2011

Я бы сказал, что вы делаете это достаточно осторожно.Однако в большинстве случаев правильным способом было бы создать переменную, такую ​​как $ id, и присвоить ей значение вашей переменной post.Это связано с тем, что многим разработчикам приходится работать с шаблонами, а в качестве программиста на PHP ваша задача будет заключаться в том, чтобы извлекать / получать входные данные и строки базы данных, а также делать их доступными для шаблонов в виде простых для доступа переменных и массивов.* Ваш пример делает ваш скрипт безопасным, когда вы ожидаете числовой идентификатор.Если вы ожидаете строку, которая обычно используется в операторе SQL, вам нужно будет предпринять дальнейшие шаги.Даже самая чистая строка может быть использована для SQL-инъекции.Вот где должны использоваться подготовленные заявления.

http://www.php.net/manual/en/mysqli.prepare.php

http://www.php.net/manual/en/class.mysqli-stmt.php

0 голосов
/ 08 ноября 2011

Боюсь, я не понимаю твоего вопроса. Простое присвоение переменной $ _POST ['id'] переменной до применения к ней 3 функций не будет иметь никакого значения. Однако сначала вы должны проверить, что $ _POST ['id'] действительно установлен (или вы получите уведомление), и вы всегда должны проверять, что входящие данные (значение в $ _POST ['id']) действительно действительны ( и не может вызывать атаки, если в нем содержится вредоносное значение) перед его использованием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...