2

PHP コードを使用してコンテンツを MySQL データベースに挿入しています。

コンテンツの編集には tinyMCE エディターを使用します。

問題は、コンテンツでいくつかの HTML タグを使用すると、サーバーから 403 - Forbidden が送信されることです。問題なくコンテンツを挿入、読み取り、編集、削除できます。

私に何ができる?

「<」、「>」、「=」などの文字を、str_replace を使用して「aaaaa」、「bbbbbbb」などの文字に変更してみました。ローカルで動作します。このようにデータベースにデータを書き込み、読み取り中に簡単に変換します。

私もbase64_encodeとdecodeを試しました。これはローカルでも機能しました。

しかし、サーバーでは、どれも機能しませんでした。だから私は問題は挿入についてではないと思った。投稿についてです。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;
}

そしてフォームレイアウト。どちらも同じページにあります BTW:

<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>
4

1 に答える 1

0

このページでは、mod_security と、問題に対処するために必要なオプションについて詳しく説明しています - http://wiki.modxcms.com/index.php/What_is_mod_security_and_how_does_it_affect_me

于 2015-03-17T13:45:10.190 に答える