|
|
|
| Пытались сайт взломать через строку поиска.
Как можно защититься?
На сайте производится запрос вида
$text=$_POST['text'];
$query=mysql_query("SELECT * FROM `table` WHERE `content_page` LIKE '%".$terxt."%'");
|
| |
|
|
|
|
|
|
|
для: neokortex
(08.12.2009 в 21:54)
| | $text = mysql_escape_string($_POST['text']); | |
|
|
|
|
|
|
|
для: DEM
(08.12.2009 в 22:24)
| | Правильнее так:
<?php
if (!get_magic_quotes_gpc()){
$text = mysql_escape_string($_POST['text']);
}
?>
|
| |
|
|
|
|
|
|
|
для: Commander
(09.12.2009 в 22:33)
| | А еще правильнее так:
<?php
if (!get_magic_quotes_gpc()){
$text = mysql_escape_string($_POST['text']);
} else {
$text = $_POST['text'];
}
?>
|
| |
|
|
|
|
|
|
|
для: neadekvat
(09.12.2009 в 22:49)
| | На самом деле так:
<?php
$_POST['text'] = isset($_POST['text']) ? (string) $_POST['text'] : NULL;
if (!get_magic_quotes_gpc()){
$esc_text = mysql_escape_string($_POST['text']);
} else {
$esc_text = $_POST['text'];
}
?>
|
P.S. А в случае с LIKE ещё и это:
<?php
function like_esc($s)
{
return addCslashes($s, '\\%_');
}
?>
|
| |
|
|
|
|
|
|
|
для: Fractured#
(09.12.2009 в 23:59)
| | А на мой взгляд вот так:
if (get_magic_quotes_gpc()){
$text = stripslashes($_POST['text']);
}
$text = mysql_escape_string($_POST['text']); | |
|
|
|
|
|
|
|
для: PhMaster
(10.12.2009 в 07:47)
| | Пользователь отправляет текст «I'll fuck u», в переменной $text оказывается же «I\'ll fuck u».
Спрашивается. Является ли «I\'ll fuck u» первоначальным текстом или это что-то другое? | |
|
|
|
|
|
|
|
для: neokortex
(08.12.2009 в 21:54)
| | а как это Вы интересно узнали что пытались взломать? Я еще не разу не сталкивался с этим, хотя много где использую формы), тфу тфу тфу через левое плече | |
|
|
|
|
|
|
|
для: ДобрыйУхх
(11.12.2009 в 00:17)
| | скрипт сохраняет в базу запрос, чтобы админ потом мог посмотреть что ищут пользователи.
А сейчас похоже придется сохранять еще и ip с точным временем запроса и датой. | |
|
|
|