|
|
|
| В общем что-то как-то не задумывался о защите sql запросов.
Да я знал о инъекциях, но я в основном проверял все данные, введенные пользователем при помощи регулярных выражений.
А тут надо сделать поле в котором можно ввести всё что угодно. Ну мой выбор пал на mysql_real_escape_string. Вопрос собственно, код на подобие к примеру
$test=mysql_real_escape_string($_POST['test']);
mysql_query("DELETE FROM users WHERE id=$test");
|
Возможно ли в этом примере совершить sql-инъекцию? | |
|
|
|
|
|
|
|
для: tricket
(17.02.2008 в 19:36)
| | > Возможно ли в этом примере совершить sql-инъекцию?
Да. | |
|
|
|
|
|
|
|
для: Unkind
(17.02.2008 в 19:47)
| | очевидный вопрос как, и как от неё же защитится)
чувствую надо сделать так... я прав?
$test=mysql_real_escape_string($_POST['test']);
mysql_query("DELETE FROM users WHERE id='$test'");
|
| |
|
|
|
|
|
|
|
для: tricket
(17.02.2008 в 19:53)
| | Да. Но если это числовое значение - лучше привести переменную к типу integer/float. И тогда апострофы/кавычки будут не нужны. | |
|
|
|
|
|
|
|
для: Unkind
(17.02.2008 в 20:12)
| | а плохого в ковычках что?! | |
|
|
|
|
|
|
|
для: tricket
(17.02.2008 в 20:17)
| | Да ничего. Просто если это число, то лучше не таскать его как строку. Да и потом, если на странице будет где-то выводиться значение этой переменной, то без перевода в числовой тип придется тоже обрабатывать данные как строку через htmlspecialchars(), чтобы избежать XSS. | |
|
|
|
|
|
|
|
для: Unkind
(17.02.2008 в 20:28)
| | Ну XSS отдельная тема...
а вот, что значит таскать как строку, а именно если тип стобца целое число, а число было в ковычках или без ковычек разницы не будет. В таблицу будет вставлено как число.
Только как я пологаю при общение PHP с mysql будет разница в передачи строки и числа? | |
|
|
|
|
|
|
|
для: tricket
(17.02.2008 в 20:34)
| | > Только как я пологаю при общение PHP с mysql будет разница в передачи строки и числа?
Не будет. | |
|
|
|
|
|
|
|
для: Unkind
(17.02.2008 в 21:27)
| | в общем картина более менее прояснилась! спасибо за помощь! | |
|
|
|