【发布时间】:2014-01-08 19:37:38
【问题描述】:
过去几天我一直在尝试这样做,我尝试了很多功能,例如
strip_tags , mysqli_real_escape_string , ..etc
// Prevent MySQL Injection Attacks
function cleanQuery($connector,$string){
if(get_magic_quotes_gpc()) // prevents duplicate backslashes
$string = stripslashes($string);
return mysqli_escape_string($connector,$string);
}
但没有人给我想要的结果。
我想要的是输入文章文本,允许 html 编辑但防止 mysqli 注入...有人可以帮忙吗?
例如: 我有这个:
$data = $_POST['data'];
echo "<form method='POST' action='index.php?do=check'>
<textarea rows='10' name='data' cols='50'>$data</textarea>
<input type='submit' value='send' name='B1'>
</form>
";
mysqli_query($conn,"insert into table(field)values('$data')");
数据的价值是:
<p align="center"><b><font size="6">test</font></b></p>
<table border='1' width='100%'>
<tr>
<td> what's your name ?</td>
<td> my name is `Jhone`</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
html 输入
那么我怎样才能毫无问题地将它插入数据库呢?
【问题讨论】:
-
myslqi 准备好的报表将为您提供所有必要的保护
-
使用准备好的语句
-
是什么让您认为代码无法保护您免受 SQL 注入? (这是次优的(准备好的语句是一种更好的方法),奇怪的是在输出准备的同时进行输入修复,但我没有看到任何会使其失败的东西。
-
DEFINE(预期)结果。
标签: php html mysqli code-injection