我試圖爲過去的日子裏做保護,我試過很多功能,如允許HTML但是從mysqli的注射
用strip_tags,mysqli_real_escape_string,..等
// 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輸入
那麼,如何可以插入到數據庫沒有問題 ?如果您使用的mysqli
// Prevent MySQL Injection Attacks
function cleanQuery($connector,$string){
return $connector->real_escape_string($string);
}
這個代碼將制定出完美的你:
myslqi準備的語句將給你所有必要的保護 – user4035
使用準備好的語句 – Junior
你想使用準備好的語句。 http://www.php.net/manual/en/mysqli.quickstart.prepared-statements.php –