Использование дезинфекции для логин PHP и поля электронной почтыPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Использование дезинфекции для логин PHP и поля электронной почты

Сообщение Anonymous »

У меня есть небольшая веб -страница, и сегодня утром у меня была атака инъекции SQL на мою формулу контакта, потому что я не включил Recaptcha правильно. Кто -то в целом отправил мне 100 электронных писем за одну минуту с типичным заявлением о инъекции SQL, например: < /p>

Код: Выделить всё

if(now()=sysdate(),sleep(15),0)
pHqghUme-1 waitfor delay '0:0:15' --
pHqghUmesYxgz4aX')) OR 580=(SELECT 580 FROM PG_SLEEP(15))--
-1' OR 2+505-505-1=0+0+0+1 --
< /code>
Поскольку я не храню какое -либо поле электронной почты в базе данных, и в поле электронной почты нет взаимодействия с базой данных, я не слишком беспокоюсь, но мне было интересно (помимо Recaptcha), если моя дезинфекция достаточно хороша. Вот как это выглядит: < /p>
if(isset($_POST['name']) && !empty($_POST['name']) && !is_array($_POST['name'])){$name = htmlentities($_POST['name'],ENT_QUOTES);}else {$test = 1; header("Location: index.php?mail=2#contact");}

if(isset($_POST['cont']) && !empty($_POST['cont']) && !is_array($_POST['cont'])){$cont = $_POST['cont'];}else {$test = 1; header("Location: index.php?mail=3#contact");}

if(isset($_POST['email']) && !empty($_POST['email']) && !is_array($_POST['email'])){$email = htmlentities($_POST['email'],ENT_QUOTES);}else {$test = 1; header("Location: index.php?mail=1#contact");}

if(isset($_POST['number']) && !empty($_POST['number']) && !is_array($_POST['number'])){$number = htmlentities($_POST['number'],ENT_QUOTES);}else {$test = 1; header("Location: index.php?mail=1#contact");}

if($test == 0) {
$cont = $cont . "\xA" . "\xA" . 'Gesendet von: ' .$name . "\xA" . 'Telefon: ' . htmlentities($_POST['number'],ENT_QUOTES) . "\xA" ."E-Mail: " . htmlentities($_POST['email'],ENT_QUOTES);

mail($empfaenger, $betreff, $cont,  "From: ");

}
Должен ли я также выполнить htmlentities в $ _post ['cont'] ? Из моего понимания PHP это должно быть проблемой?! < /P>
С другой стороны, я также принимаю CMS, написанную на этой стороне с некоторыми возможностями входа в систему и регистрации. Из-за атаки я дважды проверил свой вход и регистрационный скрипт и хочу знать, есть ли что-нибудь, что можно улучшить: < /p>
Это мой запрос в логатике: < /p>

Код: Выделить всё

if ($stmt = $mysqli->prepare("SELECT id, username, password, salt, aktivate, gruppe FROM members WHERE email = ? OR username = ? LIMIT 1")) {

$stmt->bind_param('ss', $email, $email);
$stmt->execute();
...
...
}
< /code>
Нет другой дезинфекции в поле электронной почты. Это проблема? Из моего понимания bind_param 
должен управлять этим правильно?

Код: Выделить всё

$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
$email = filter_var($email, FILTER_VALIDATE_EMAIL);
$password = filter_input(INPUT_POST, 'p', FILTER_SANITIZE_STRING);
Я строю веб -сайты только как хобби и с нетерпением жду конструктивной обратной связи.


Подробнее здесь: https://stackoverflow.com/questions/795 ... ail-fields
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»