2012-03-06 2 views
0

На моем и моем другом сайте есть форма с текстовым полем для входа. Если вход не существует Ошибка отображается
"Error occurred. 151SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected".
Если я ввел неверный логин + некоторый sql (например, "iu7' or '1=1'--"), он не отображает никаких данных и никаких ошибок.
Эта форма безопасна? Можно ли ввести действительный логин + sql для переключения входа в его пароль в результате? Что ты думаешь об этом?Есть ли способ получить некоторые конфиденциальные данные с этого сайта?

ответ

2

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

Я не думаю, что люди на SO собираются помочь вам вставлять другие сайты, так что это все, что я сейчас скажу.

2

Это зависит от того, как вы создаете свои команды SQL с опубликованными данными. Если вы просто строите строку из значений, вы рискуете атаками SQL-инъекций.

Посмотрите на эту статью:

http://php.net/manual/en/pdo.prepared-statements.php

Это объясняет, как построить подготовленные операторы в PHP, которые будут защищать от инъекции SQL.

Смежные вопросы