Шпаргалка по функциям фильтрации текста, в частности, при приеме данных для подготовки SQL-запроса но и для других целей.
Входные данные в таком виде:
print("Input string");
var_dump($input);
';KkhjlhnKHK'''nk1#%$#%$3'"Bobby';DROP TABLE users; -- '
print('htmlspecialchars');
var_dump(htmlspecialchars($input));
';KkhjlhnKHK'''nk1#%$#%$3'"Bobby';DROP TABLE users; -- '
print('htmlspecialchars + flag ENT_QUOTES');
var_dump(htmlspecialchars($input, ENT_QUOTES,"UTF-8"));
';KkhjlhnKHK'''nk1#%$#%$3'"Bobby';DROP TABLE users; -- '
print('htmlspecialchars + flag ENT_NOQUOTES');
var_dump(htmlspecialchars($input, ENT_NOQUOTES));
';KkhjlhnKHK'''nk1#%$#%$3'"Bobby';DROP TABLE users; -- '
print('htmlspecialchars + flag ENT_IGNORE');
var_dump(htmlspecialchars($input, ENT_IGNORE));
';KkhjlhnKHK'''nk1#%$#%$3'"Bobby';DROP TABLE users; -- '
print('addslashes + stripslashes + str_replace');
var_dump(str_replace(["\'", '\"'], ">>",addslashes(stripslashes($input))));
';KkhjlhnKHK>>>>>>nk1#%$#%$3>>>>Bobby>>;DROP TABLE users; -- '
print('htmlspecialchars + flag ENT_DISALLOWED');
var_dump(htmlspecialchars($input, ENT_DISALLOWED));
';KkhjlhnKHK'''nk1#%$#%$3'"Bobby';DROP TABLE users; -- '
print('addslashes + stripslashes');
var_dump(addslashes(stripslashes($input)));
';KkhjlhnKHK\'\'\'nk1#%$#%$3\'\"Bobby\';DROP TABLE users; -- '
print('filter_var + FILTER_SANITIZE_STRING');
var_dump(filter_var($input,FILTER_SANITIZE_STRING));
';KkhjlhnKHK'''nk1#%$#%$3'"Bobby';DROP TABLE users; -- '
print('htmlentities');
var_dump(htmlentities($input));
';KkhjlhnKHK'''nk1#%$#%$3'"Bobby';DROP TABLE users; -- '
print('htmlentities + ENT_QUOTES + UTF-8');
var_dump(htmlentities($input, ENT_QUOTES ,'UTF-8'));
';KkhjlhnKHK'''nk1#%$#%$3'"Bobby';DROP TABLE users; -- '
print('htmlentities + ENT_QUOTES + cp1251 ');
var_dump(htmlentities($input, ENT_QUOTES ,'cp1251'));
';KkhjlhnKHK'''nk1#%$#%$3'"Bobby';DROP TABLE users; -- '
print('htmlentities + ENT_SUBSTITUTE');
var_dump(htmlentities($input, ENT_SUBSTITUTE));
';KkhjlhnKHK'''nk1#%$#%$3'"Bobby';DROP TABLE users; -- '
print('htmlentities + ENT_SUBSTITUTE + + UTF-8');
var_dump(htmlentities($input, ENT_SUBSTITUTE, 'UTF-8'));
';KkhjlhnKHK'''nk1#%$#%$3'"Bobby';DROP TABLE users; -- '
Короче говоря, можно пользоваться такой фильтрацией для многих целей но для запросов к БД лучше использовать встроенный конструктов запросов Yii2 или функцию mysqli_real_escape_string.