繁体   English   中英

发布HTML时禁止PHP 403

[英]PHP 403 Forbidden While Posting HTML

我正在使用PHP代码将内容插入MySQL数据库。

我使用tinyMCE编辑器进行内容编辑。

问题是,当我在内容中使用一些HTML标记时,服务器会向我发送403-禁止,但是如果我摆脱了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>&nbsp;</td>
    <td><input type="submit" name="add" value="Yazı Ekle"></td>
  </tr>
</table>
</form>

在这个页面上,你可以找到更多的mod_security什么选项,你必须处理的问题- http://wiki.modxcms.com/index.php/What_is_mod_security_and_how_does_it_affect_me

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM