DENIKA31
Местный
- Сообщения
- 39
- Реакции
- 2
- Сообщения
- 280
- Реакции
- 46
Код:
if($_GET['menu']!='admin4ik' && 'support'){
function limpiarez($mensaje){
$mensaje = htmlspecialchars(trim($mensaje));
$mensaje = str_replace("'","′",$mensaje);
$mensaje = str_replace(";","¦",$mensaje);
$mensaje = str_replace("$"," USD ",$mensaje);
$mensaje = str_replace("<","⟨",$mensaje);
$mensaje = str_replace(">","⟩",$mensaje);
$mensaje = str_replace('"',"”",$mensaje);
$mensaje = str_replace("%27"," ",$mensaje);
$mensaje = str_replace("0x29"," ",$mensaje);
$mensaje = str_replace("& amp ","&",$mensaje);
return $mensaje;
}
foreach($HTTP_POST_VARS as $i => $value){$HTTP_POST_VARS[$i]=limpiarez($HTTP_POST_VARS[$i]);}
foreach($HTTP_GET_VARS as $i => $value){$HTTP_GET_VARS[$i]=limpiarez($HTTP_GET_VARS[$i]);}
foreach($_POST as $i => $value){$_POST[$i]=limpiarez($_POST[$i]);}
foreach($_GET as $i => $value){$_GET[$i]=limpiarez($_GET[$i]);}
foreach($_COOKIE as $i => $value){$_COOKIE[$i]=limpiarez($_COOKIE[$i]);}
foreach($HTTP_POST_VARS as $i => $value){$HTTP_POST_VARS[$i]=stripslashes($HTTP_POST_VARS[$i]);}
foreach($HTTP_GET_VARS as $i => $value){$HTTP_GET_VARS[$i]=stripslashes($HTTP_GET_VARS[$i]);}
foreach($_POST as $i => $value){$_POST[$i]=stripslashes($_POST[$i]);}
foreach($_GET as $i => $value){$_GET[$i]=stripslashes($_GET[$i]);}
foreach($_COOKIE as $i => $value){$_COOKIE[$i]=stripslashes($_COOKIE[$i]);}
################## Фильтрация всех POST и GET #######################################
function filter_sf(&$sf_array)
{
while (list ($X,$D) = each ($sf_array)):
$sf_array[$X] = limpiarez(mysql_escape_string(strip_tags(htmlspecialchars($D))));
endwhile;
}
filter_sf($_GET);
filter_sf($_POST);
#####################################################################################
function anti_sql()
{
$check = html_entity_decode( urldecode( $_SERVER['REQUEST_URI'] ) );
$check = str_replace( "", "/", $check );
$check = mysql_real_escape_string($str);
$check = trim($str);
$check = array("AND","UNION","SELECT","WHERE","INSERT","UPDATE","DELETE","OUTFILE","FROM","OR","SHUTDOWN","CHANGE","MODIFY","RENAME","RELOAD","ALTER","GRANT","DROP","CONCAT","cmd","exec");
$check = str_replace($check,"",$str);
if( $check )
{
if((strpos($check, '<')!==false) || (strpos($check, '>')!==false) || (strpos($check, '"')!==false) || (strpos($check,"'")!==false) || (strpos($check, '*')!==false) || (strpos($check, '(')!==false) || (strpos($check, ')')!==false) || (strpos($check, ' ')!==false) || (strpos($check, ' ')!==false) || (strpos($check, ' ')!==false) )
{
$prover = true;
}
if((strpos($check, 'src')!==false) || (strpos($check, 'img')!==false) || (strpos($check, 'OR')!==false) || (strpos($check, 'Image')!==false) || (strpos($check, 'script')!==false) || (strpos($check, 'javascript')!==false) || (strpos($check, 'language')!==false) || (strpos($check, 'document')!==false) || (strpos($check, 'cookie')!==false) || (strpos($check, 'gif')!==false) || (strpos($check, 'png')!==false) || (strpos($check, 'jpg')!==false) || (strpos($check, 'js')!==false) )
{
$prover = true;
}
}
if (isset($prover))
{
die( "Попытка атаки на сайт или введены запрещённые символы!" );
return false;
exit;
}
}
anti_sql();
}
Скинь пример ошибокskroliks написал(а):Народ! Кто пользуется данным кодом защиты от инъекций? Я заливаю его себе в индекс - и у меня куча ошибок вылазит!!Код:if($_GET['menu']!='admin4ik' && 'support'){ function limpiarez($mensaje){ $mensaje = htmlspecialchars(trim($mensaje)); $mensaje = str_replace("'","′",$mensaje); $mensaje = str_replace(";","¦",$mensaje); $mensaje = str_replace("$"," USD ",$mensaje); $mensaje = str_replace("<","⟨",$mensaje); $mensaje = str_replace(">","⟩",$mensaje); $mensaje = str_replace('"',"”",$mensaje); $mensaje = str_replace("%27"," ",$mensaje); $mensaje = str_replace("0x29"," ",$mensaje); $mensaje = str_replace("& amp ","&",$mensaje); return $mensaje; } foreach($HTTP_POST_VARS as $i => $value){$HTTP_POST_VARS[$i]=limpiarez($HTTP_POST_VARS[$i]);} foreach($HTTP_GET_VARS as $i => $value){$HTTP_GET_VARS[$i]=limpiarez($HTTP_GET_VARS[$i]);} foreach($_POST as $i => $value){$_POST[$i]=limpiarez($_POST[$i]);} foreach($_GET as $i => $value){$_GET[$i]=limpiarez($_GET[$i]);} foreach($_COOKIE as $i => $value){$_COOKIE[$i]=limpiarez($_COOKIE[$i]);} foreach($HTTP_POST_VARS as $i => $value){$HTTP_POST_VARS[$i]=stripslashes($HTTP_POST_VARS[$i]);} foreach($HTTP_GET_VARS as $i => $value){$HTTP_GET_VARS[$i]=stripslashes($HTTP_GET_VARS[$i]);} foreach($_POST as $i => $value){$_POST[$i]=stripslashes($_POST[$i]);} foreach($_GET as $i => $value){$_GET[$i]=stripslashes($_GET[$i]);} foreach($_COOKIE as $i => $value){$_COOKIE[$i]=stripslashes($_COOKIE[$i]);} ################## Фильтрация всех POST и GET ####################################### function filter_sf(&$sf_array) { while (list ($X,$D) = each ($sf_array)): $sf_array[$X] = limpiarez(mysql_escape_string(strip_tags(htmlspecialchars($D)))); endwhile; } filter_sf($_GET); filter_sf($_POST); ##################################################################################### function anti_sql() { $check = html_entity_decode( urldecode( $_SERVER['REQUEST_URI'] ) ); $check = str_replace( "", "/", $check ); $check = mysql_real_escape_string($str); $check = trim($str); $check = array("AND","UNION","SELECT","WHERE","INSERT","UPDATE","DELETE","OUTFILE","FROM","OR","SHUTDOWN","CHANGE","MODIFY","RENAME","RELOAD","ALTER","GRANT","DROP","CONCAT","cmd","exec"); $check = str_replace($check,"",$str); if( $check ) { if((strpos($check, '<')!==false) || (strpos($check, '>')!==false) || (strpos($check, '"')!==false) || (strpos($check,"'")!==false) || (strpos($check, '*')!==false) || (strpos($check, '(')!==false) || (strpos($check, ')')!==false) || (strpos($check, ' ')!==false) || (strpos($check, ' ')!==false) || (strpos($check, ' ')!==false) ) { $prover = true; } if((strpos($check, 'src')!==false) || (strpos($check, 'img')!==false) || (strpos($check, 'OR')!==false) || (strpos($check, 'Image')!==false) || (strpos($check, 'script')!==false) || (strpos($check, 'javascript')!==false) || (strpos($check, 'language')!==false) || (strpos($check, 'document')!==false) || (strpos($check, 'cookie')!==false) || (strpos($check, 'gif')!==false) || (strpos($check, 'png')!==false) || (strpos($check, 'jpg')!==false) || (strpos($check, 'js')!==false) ) { $prover = true; } } if (isset($prover)) { die( "Попытка атаки на сайт или введены запрещённые символы!" ); return false; exit; } } anti_sql(); }
- Сообщения
- 280
- Реакции
- 46
Diknoa написал(а):Скинь пример ошибок
Код:
Notice: Undefined variable: HTTP_POST_VARS in /home/i/index.php on line 21 Warning: Invalid argument supplied for foreach() in /home/i/index.php on line 21
Notice: Undefined variable: HTTP_GET_VARS in /home/i/index.php on line 22 Warning: Invalid argument supplied for foreach() in /home/i/index.php on line 22
Notice: Undefined variable: HTTP_POST_VARS in /home/i/index.php on line 28 Warning: Invalid argument supplied for foreach() in /home/i/index.php on line 28
Notice: Undefined variable: HTTP_GET_VARS in /home/i/index.php on line 29 Warning: Invalid argument supplied for foreach() in /home/i/index.php on line 29 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /home/i/index.php on line 38 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /home/i/index.php on line 38
Notice: Undefined variable: str in /home/i/index.php on line 50 Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/i/index.php on line 50
Warning: mysql_real_escape_string(): Access denied for user ''@'localhost' (using password: NO) in /home/i/index.php on line 50
Warning: mysql_real_escape_string(): A link to the server could not be established in /home/i/index.php on line 50
Notice: Undefined variable: str in /home/i/index.php on line 51
Notice: Undefined variable: str in /home/i/index.php on line 53
- Сообщения
- 322
- Реакции
- 72
skroliks написал(а):Код:Notice: Undefined variable: HTTP_POST_VARS in /home/i/index.php on line 21 Warning: Invalid argument supplied for foreach() in /home/i/index.php on line 21 Notice: Undefined variable: HTTP_GET_VARS in /home/i/index.php on line 22 Warning: Invalid argument supplied for foreach() in /home/i/index.php on line 22 Notice: Undefined variable: HTTP_POST_VARS in /home/i/index.php on line 28 Warning: Invalid argument supplied for foreach() in /home/i/index.php on line 28 Notice: Undefined variable: HTTP_GET_VARS in /home/i/index.php on line 29 Warning: Invalid argument supplied for foreach() in /home/i/index.php on line 29 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /home/i/index.php on line 38 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /home/i/index.php on line 38 Notice: Undefined variable: str in /home/i/index.php on line 50 Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/i/index.php on line 50 Warning: mysql_real_escape_string(): Access denied for user ''@'localhost' (using password: NO) in /home/i/index.php on line 50 Warning: mysql_real_escape_string(): A link to the server could not be established in /home/i/index.php on line 50 Notice: Undefined variable: str in /home/i/index.php on line 51 Notice: Undefined variable: str in /home/i/index.php on line 53
Код:
Warning: mysql_real_escape_string(): Access denied for user ''@'localhost' (using password: NO) in /home/i/index.php on line 50
Warning: mysql_real_escape_string(): A link to the server could not be established in /home/i/index.php on line 50
Ты вставляешь этот код до подключения к БД, вот и появляется ошибка.
Код:
Notice: Undefined variable: str in /home/i/index.php on line 51
Notice: Undefined variable: str in /home/i/index.php on line 53
В функции anti_sql() используется переменная $str, но она нигде не определена и по сути эта функция работает с неопределенной, пустой переменной, я думаю так не должно быть
Код:
Notice: Undefined variable: HTTP_POST_VARS in /home/i/index.php on line 21 Warning: Invalid argument supplied for foreach() in /home/i/index.php on line 21
Notice: Undefined variable: HTTP_GET_VARS in /home/i/index.php on line 22 Warning: Invalid argument supplied for foreach() in /home/i/index.php on line 22
Notice: Undefined variable: HTTP_POST_VARS in /home/i/index.php on line 28 Warning: Invalid argument supplied for foreach() in /home/i/index.php on line 28
Notice: Undefined variable: HTTP_GET_VARS in /home/i/index.php on line 29 Warning: Invalid argument supplied for foreach() in /home/i/index.php on line 29 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /home/i/index.php on line 38 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /home/i/index.php on line 38
$HTTP_POST_VARS и $HTTP_GET_VARS - это устаревшие названия для $_POST и $_GET. Ниже у тебя идет обработка этих массивов, поэтому строки с $HTTP_POST_VARS и $HTTP_GET_VARS можно удалить
- Сообщения
- 280
- Реакции
- 46
1. $HTTP_POST_VARS и $HTTP_GET_VARS - это устаревшие названия для $_POST и $_GET. Ниже у тебя идет обработка этих массивов, поэтому строки с $HTTP_POST_VARS и $HTTP_GET_VARS можно удалить
А если $HTTP_POST_VARS и $HTTP_GET_VARS просто заменить на $_POST и $_GET?
2. В функции anti_sql() используется переменная $str, но она нигде не определена и по сути эта функция работает с неопределенной, пустой переменной, я думаю так не должно быть
А что тогда с ней делать? тоже просто удалить?
А если $HTTP_POST_VARS и $HTTP_GET_VARS просто заменить на $_POST и $_GET?
2. В функции anti_sql() используется переменная $str, но она нигде не определена и по сути эта функция работает с неопределенной, пустой переменной, я думаю так не должно быть
А что тогда с ней делать? тоже просто удалить?
- Сообщения
- 322
- Реакции
- 72
-> А если $HTTP_POST_VARS и $HTTP_GET_VARS просто заменить на $_POST и $_GET?skroliks написал(а):1. $HTTP_POST_VARS и $HTTP_GET_VARS - это устаревшие названия для $_POST и $_GET. Ниже у тебя идет обработка этих массивов, поэтому строки с $HTTP_POST_VARS и $HTTP_GET_VARS можно удалить
А если $HTTP_POST_VARS и $HTTP_GET_VARS просто заменить на $_POST и $_GET?
2. В функции anti_sql() используется переменная $str, но она нигде не определена и по сути эта функция работает с неопределенной, пустой переменной, я думаю так не должно быть
А что тогда с ней делать? тоже просто удалить?
У тебя чуть ниже уже есть такие строки, где переменные заменены
-> А что тогда с ней делать? тоже просто удалить?
Она какая-то странная, видимо неправильно написана, вместо каких-то $check там должны быть $str.
В таком виде никакого смысла в этой функции я не вижу.
- Сообщения
- 280
- Реакции
- 46
А как же тогда другие люди этот код себе пихают и у них якобы все работает?? хм..MegaGoblin написал(а):-> А если $HTTP_POST_VARS и $HTTP_GET_VARS просто заменить на $_POST и $_GET?
У тебя чуть ниже уже есть такие строки, где переменные заменены
-> А что тогда с ней делать? тоже просто удалить?
Она какая-то странная, видимо неправильно написана, вместо каких-то $check там должны быть $str.
В таком виде никакого смысла в этой функции я не вижу.
- Сообщения
- 322
- Реакции
- 72
"ой ошибка, отключу я вывод ошибок и будет все хорошо" - они видимо по такому принципу...skroliks написал(а):А как же тогда другие люди этот код себе пихают и у них якобы все работает?? хм..
- Сообщения
- 280
- Реакции
- 46
Ахахахххх! пфффф - я так сразу почему то и подумалMegaGoblin написал(а):"ой ошибка, отключу я вывод ошибок и будет все хорошо" - они видимо по такому принципу...
Но я то перфекционист - люблю когда все как надо
- Сообщения
- 280
- Реакции
- 46
foreach($HTTP_POST_VARS as $i => $value){$HTTP_POST_VARS[$i]=limpiarez($HTTP_POST_VARS[$i]);}MegaGoblin написал(а):-> А если $HTTP_POST_VARS и $HTTP_GET_VARS просто заменить на $_POST и $_GET?
У тебя чуть ниже уже есть такие строки, где переменные заменены
-> А что тогда с ней делать? тоже просто удалить?
Она какая-то странная, видимо неправильно написана, вместо каких-то $check там должны быть $str.
В таком виде никакого смысла в этой функции я не вижу.
foreach($HTTP_GET_VARS as $i => $value){$HTTP_GET_VARS[$i]=limpiarez($HTTP_GET_VARS[$i]);}
foreach($_POST as $i => $value){$_POST[$i]=limpiarez($_POST[$i]);}
foreach($_GET as $i => $value){$_GET[$i]=limpiarez($_GET[$i]);}
А может $HTTP_POST_VARS и $HTTP_GET_VARS это защита от ввода в строку браузера, а $_POST и $_GET это от ввода на самом сайте? Или бред?
- Сообщения
- 322
- Реакции
- 72
http://php.net/manual/ru/reserved.variables.post.phpskroliks написал(а):foreach($HTTP_POST_VARS as $i => $value){$HTTP_POST_VARS[$i]=limpiarez($HTTP_POST_VARS[$i]);}
foreach($HTTP_GET_VARS as $i => $value){$HTTP_GET_VARS[$i]=limpiarez($HTTP_GET_VARS[$i]);}
foreach($_POST as $i => $value){$_POST[$i]=limpiarez($_POST[$i]);}
foreach($_GET as $i => $value){$_GET[$i]=limpiarez($_GET[$i]);}
А может $HTTP_POST_VARS и $HTTP_GET_VARS это защита от ввода в строку браузера, а $_POST и $_GET это от ввода на самом сайте? Или бред?
- Сообщения
- 280
- Реакции
- 46
ну окай.. убедил Значит можно удалить..MegaGoblin написал(а):
А вот что с $str делать - ума не приложу
- Сообщения
- 280
- Реакции
- 46
Такс.. убрал везде лишние $HTTP_POST_VARS и $HTTP_GET_VARS и вставил код после подключения к бд:
вот что осталось из ошибок:
Notice: Undefined variable: str in /home/i/index.php on line 83
Warning: mysql_real_escape_string(): Access denied for user ''@'localhost' (using password: NO) in /home/i/index.php on line 83
Warning: mysql_real_escape_string(): A link to the server could not be established in /home/i/index.php on line 83
Notice: Undefined variable: str in /home/i/index.php on line 84
Notice: Undefined variable: str in /home/i/index.php on line 86
вот со str тут понятно и не понятно что делать, а вот "после подключения к бд" - что именно это должно быть? может в индексе и нет такого?
вот что осталось из ошибок:
Notice: Undefined variable: str in /home/i/index.php on line 83
Warning: mysql_real_escape_string(): Access denied for user ''@'localhost' (using password: NO) in /home/i/index.php on line 83
Warning: mysql_real_escape_string(): A link to the server could not be established in /home/i/index.php on line 83
Notice: Undefined variable: str in /home/i/index.php on line 84
Notice: Undefined variable: str in /home/i/index.php on line 86
вот со str тут понятно и не понятно что делать, а вот "после подключения к бд" - что именно это должно быть? может в индексе и нет такого?
- Сообщения
- 322
- Реакции
- 72
skroliks написал(а):Такс.. убрал везде лишние $HTTP_POST_VARS и $HTTP_GET_VARS и вставил код после подключения к бд:
вот что осталось из ошибок:
Notice: Undefined variable: str in /home/i/index.php on line 83
Warning: mysql_real_escape_string(): Access denied for user ''@'localhost' (using password: NO) in /home/i/index.php on line 83
Warning: mysql_real_escape_string(): A link to the server could not be established in /home/i/index.php on line 83
Notice: Undefined variable: str in /home/i/index.php on line 84
Notice: Undefined variable: str in /home/i/index.php on line 86
вот со str тут понятно и не понятно что делать, а вот "после подключения к бд" - что именно это должно быть? может в индексе и нет такого?
Подключение к БД это строка:
$db = new db (......);
На фермах надо писать вместо (хз точно ли надо это менять)
mysql_real_escape_string($stroka)
Это
$db->RealEscape($stroka)
- Сообщения
- 280
- Реакции
- 46
Подключение к БД это строка:MegaGoblin написал(а):Подключение к БД это строка:
$db = new db (......);
На фермах надо писать вместо (хз точно ли надо это менять)
mysql_real_escape_string($stroka)
Это
$db->RealEscape($stroka)
$db = new db (......);
Дело в том, что сказано что данный код надо пихать в корневой индекс, НО - там нет такой строки $db = new db (......); и вообще обращений к бд..
На фермах надо писать вместо
mysql_real_escape_string($stroka)
Это
$db->RealEscape($stroka)
Вот тут не совсем понял - надо вместо $str везде прописать $stroka?
- Сообщения
- 322
- Реакции
- 72
skroliks написал(а):
Подключение к БД это строка:
$db = new db (......);
Дело в том, что сказано что данный код надо пихать в корневой индекс, НО - там нет такой строки $db = new db (......); и вообще обращений к бд..
На фермах надо писать вместо
mysql_real_escape_string($stroka)
Это
$db->RealEscape($stroka)
Вот тут не совсем понял - надо вместо $str везде прописать $stroka?
Подключение к БД должно быть в индексном файле (сделай пойиск по фразе 'new')
>> Вот тут не совсем понял - надо вместо $str везде прописать $stroka?
Менять не надо, я показал, что меняется лишь название функции, а ее аргумент не трогай... если там стоит $str, то его и оставляй
- Сообщения
- 280
- Реакции
- 46
Нашел, но я как раз после нее код и вставилMegaGoblin написал(а):Подключение к БД должно быть в индексном файле (сделай пойиск по фразе 'new')
>> Вот тут не совсем понял - надо вместо $str везде прописать $stroka?
Менять не надо, я показал, что меняется лишь название функции, а ее аргумент не трогай... если там стоит $str, то его и оставляй
# База данных
$db = new db($config->HostDB, $config->UserDB, $config->PassDB, $config->BaseDB);
Все равно ошибка, как я писал не исчезла..
А $str я так понял ошибка так и останется и с ней ничего не поделаешь?
- Сообщения
- 322
- Реакции
- 72
Пробовал поменять на $db->RealEscape($str) ?skroliks написал(а):Нашел, но я как раз после нее код и вставил
# База данных
$db = new db($config->HostDB, $config->UserDB, $config->PassDB, $config->BaseDB);
Все равно ошибка, как я писал не исчезла..
А $str я так понял ошибка так и останется и с ней ничего не поделаешь?
- Сообщения
- 280
- Реакции
- 46
Fatal error: Call to undefined function RealEscape() in /home/i/index.php on line 83 - вообще сайт не открываетсяMegaGoblin написал(а):Пробовал поменять на $db->RealEscape($str) ?
- Статус
- В этой теме нельзя размещать новые ответы.