Получение данных
Выкладываю пример кода на PHP получение и обработка данных от элемента <form>.
Создадим файл data.php и напишем следующий код.
<?php
$text="<form action=\"data.php\" method=\"post\">";
$text.="<input type=\"text\" name=\"data\" placeholder=\"данные\">";
$text.="<button type=\"submit\">Готово</button>";
$text.="</form>";
echo $text;
//получаем данные
$data=valid($_POST['data']);
echo ($data);
function valid ($res) {
$id = trim(strip_tags(strval($res)));
if(preg_match('/(union|select|from|where)/i', $id))
$err_text='Атака хакера! // no sqli select keywords';
if(preg_match('/(group|order|having|limit)/i', $id))
$err_text='Атака хакера! // no sqli select keywords';
if(preg_match('/(into|file|http:|https:|case)/i', $id))
$err_text='Атака хакера! // no sqli operators';
if(preg_match('/(--|#|\/\*)/', $id))
$err_text='Атака хакера! // no sqli comments';
if(preg_match('/(&|\|)/', $id))
$err_text='Атака хакера! // no boolean operators';
if($err_text!=''){
exit($err_text);
}else{
$id=trim(strip_tags($id));
return $id;
}
}
?>
Из <form> получаем данные от <input> с помощью метода $_POST.
Прогоняем через собственную функцию valid, о ней ниже. И показываем результат.
Функция valid очищает данные от мусора, это особенно важно если данные будут для MySQL.strval - Возвращает строковое значение переменной.
strip_tags - Удаляет HTML теги из строки, не трогая их содержимого.
trim - Удаляет пробелы из начала и конца строки.
preg_match - Проверяет отсутствие служебных символов MySQL, #, & и т.д, или слов limit, where и т.д.