|
|
|
| стоит ли проверять переменные полученые от пользователя при запросе к БД на чтение?
например SELECT запрос:
<?php
$name = $_POST['name'];
$sql = "SELECT * FROM names WHERE name ='".$name."'";
$result = mysql_query($sql);
?>
|
| |
|
|
|
|
|
|
|
для: deman-b
(25.08.2007 в 21:15)
| | стоит на mysql_escape_string пропускать, если mqgic quotes off | |
|
|
|
|
|
|
|
для: bronenos
(25.08.2007 в 22:01)
| | тогда при записи в БД, как для безпасности обработать строку? | |
|
|
|
|
|
|
|
для: deman-b
(25.08.2007 в 22:49)
| | я собсна это и написал... | |
|
|
|
|
автор: гость 007 (27.08.2007 в 09:59) |
|
|
для: bronenos
(25.08.2007 в 23:53)
| | извеняюсь за оффтоп и ламерство, но появился такой вопрос:
как происходит SQL-инекция?? из-за необработанных одинарных ковычек? ' ' '
а если я $name помещаю в обратные ковычки??`````
addslashes() тут не поможет...
<?php
$name = $_POST['name'];
$sql = "SELECT * FROM names WHERE name =`".$name."`";
$result = mysql_query($sql);
?>
|
| |
|
|
|
|
|
|
|
для: гость 007
(27.08.2007 в 09:59)
| | В обратные кавычки следует помещать имена столбцов, таблиц и баз данных
<?php
$name = $_POST['name'];
$sql = "SELECT * FROM `names` WHERE name ='".$name."'";
$result = mysql_query($sql);
?>
|
Данные поступающие из вне следует обрабатывать в зависимости от того, включен режим магических кавычек или нет (определяется при помощи функции get_magic_quotes_gpc())
<?php
if (!get_magic_quotes_gpc())
{
$name = mysql_escape_string($_POST['name']);
}
$sql = "SELECT * FROM `names` WHERE `name` ='".$name."'";
$result = mysql_query($sql);
?>
|
| |
|
|
|