我正在使用 PHP 代码将内容插入 MySQL 数据库。
我使用 tinyMCE 编辑器进行内容编辑。
问题是,当我在内容中使用一些 HTML 标签时,服务器会向我发送 403 - Forbidden 但是如果我去掉 HTML 标签;我可以毫无问题地插入、阅读、编辑、删除我的内容。
我能做些什么?
我尝试使用 str_replace 将“<”、“>”、“=”等字符更改为“aaaaa”、“bbbbbbb”等其他字符。它适用于本地。它像这样将数据写入数据库,并在读取时轻松转换。
我也尝试过 base64_encode 和解码。这也适用于本地。
但是在服务器中,它们都不起作用。所以我认为问题不在于插入。是关于发帖的。因为我什至无法回显我的 sql 查询或发布值。当我点击提交时,我看到了 403。
你有什么建议?
我听到有人说
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
但它不安全。如果我将此行添加到我的 htaccess 中,一切正常。
您认为我可以修改此代码以获得更高的安全性,还是我必须对我的 PHP 脚本做一些事情?
所以你问过我的 PHP 代码。这里是:
if(isset($_POST['add']))
{
//Diğer parametreleri de al:
$_POST['icerik'] = mysqli_real_escape_string($myDatabaseLink, $_POST['icerik']);
//SQL sorgusunu hazırla:
$sorgu =sprintf("INSERT INTO table VALUES('%s')", $_POST['icerik']);
echo $_POST['icerik']; //Can't even reach here while posting HTML (otherwise no problem)
echo $sorgu;
exit;
}
和表格布局。顺便说一句,他们都在同一页面上:
<form action="#" method="post" name="blabla">
<table>
<tr>
<td>İçerik:</td>
<td><textarea name="icerik" id="editor1" class="ckeditor" rows="10" cols="80"></textarea></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="add" value="Yazı Ekle"></td>
</tr>
</table>
</form>