2014-12-19 6 views
2

나는 PHP 코드를 사용하여 MySQL 데이터베이스에 내용을 삽입하고 있습니다.HTML 게시 중 금지 된 PHP 403

콘텐츠 편집을 위해 tinyMCE 편집기를 사용합니다.

콘텐츠에 일부 HTML 태그를 사용하면 서버에서 403을 전송합니다. - 금지됨 하지만 HTML 태그를 제거하면 문제가 발생합니다. 내 콘텐츠를 삽입하고, 읽고 편집하고, 문제없이 삭제할 수 있습니다.

어떻게해야합니까?

"<", ">", "="등의 문자를 "aaaaa", "bbbbbbb"와 str_replace 같은 다른 문자로 변경해 보았습니다. 그것은 지역에서 작동합니다. 이처럼 데이터베이스에 데이터를 쓰고 읽는 동안 쉽게 변환합니다.

나는 base64_encode도 시도해 보았다. 이것은 또한 지역에서 일했습니다.

그러나 서버에서는 아무 것도 작동하지 않았습니다. 그래서 문제는 삽입하는 것이 아니라고 생각했습니다. 그것은 게시에 관한 것입니다. Becaue 나는 심지어 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 같은 페이지에 모두 : 당신은 mod_security와 어떤 옵션 당신이 문제를 해결해야 할에 대한 자세한 찾을 수있는이 페이지에서

<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> 
+1

그래서, 당신의 POST 요청에 mod_security에 의해 차단되고는? 트리거되는 규칙을 확인하려면 서버 오류 로그를 확인한 다음이 POST 요청에 대해 해당 규칙을 단순히 해제 할 수 있는지 또는 해당 규칙을 트리거하지 않도록 요청을 변경할 수 있는지 여부를 알아야합니다. –

+0

해당 htaccess 블록을 보았습니까? 당신은 그것을 사용하는 것이 좋은 생각이거나 다른 방법을 찾아야한다고 생각합니까? – Diga

답변