2015-01-15 3 views
-3

mySQL 데이터베이스의 내용을 표시하고 업데이트하는 데 사용되는 PHP 페이지 (여러 페이지 중 하나)가 있습니다. 페이지는 매우 간단한 방법으로 생성됩니다. 제출 버튼을 클릭하면 페이지가 다시로드되고 PHP 루틴이 데이터베이스를 업데이트하면 페이지에 새로운 내용이 다시 표시됩니다.미스터리 403 오류

갑자기 오늘 나는 그 문제에 부딪혔다. 처음 열 때 페이지는 괜찮지 만 제출 버튼을 클릭하면 403 오류가 발생합니다. 이 오류는 데이터베이스가 업데이트되지 않아 PHP가 실행되기 전에 팝업됩니다.

다른 유사한 페이지에는 동일한 문제가 없으므로 문제가 없어 질 때까지 파일을 꺼내서 작업했습니다. 결론은 양식 입력 중 두 가지 (총 약 20 개 중)가 문제를 일으키는 것입니다. 그 문제의 입력 중 하나에 대한 코드는

<tr class="formspace"> 
<td valign="top" class="formleft"><br> 
<br> 
From the Hotel Guestbook</td> 
<td colspan="2"><textarea name="guestbook" cols="60" rows="4" wrap="VIRTUAL" id="guestbook"><?php echo $row_hotel['guestbook']; ?></textarea> 
<span class="formnote">&nbsp;&nbsp;&nbsp;Remember to put &lt;hr class="guestbook"&gt; between the paras.</span> 
</td> 
</tr> 

아직이 하나 꽤 inoccuous 것

<tr class="formspace"> 
<td valign="top" class="formleft"><br> 
<br> 
Restaurant</td> 
<td colspan="2"><textarea name="restaurant" cols="60" rows="4" wrap="VIRTUAL" id="restaurant"><?php echo $row_hotel['restaurant']; ?></textarea></td> 
</tr> 

두 가지 문제 이름 필드는 "방명록"이며, "활동"문제를 유발하지 않는다 다른 것과 충돌해서는 안됩니다.

파일 권한은 다른 모든 기능과 동일합니다. 파일에 644, 폴더에 755가 있습니다.

나는 분명한 뭔가를 놓치고 있습니까?

+0

우리 내부에 포장하는 것입니다. 모든 코드를 참조하십시오? – DevDonkey

+1

제공된 코드가 문제와 관련이없는 것으로 보입니다. 문제는 코드의 다른 부분에 있으므로 더 게시하십시오 – Forien

+0

예 코드는 관련성이 없었지만 그 당시에는 알지 못했습니다. 아래 답변에서 내 의견을 참조하십시오. – TrapezeArtist

답변

1

비슷한 문제가 발생하여 동일한 문제가 발생하면 웹 호스트가 mod_security를 ​​설치했거나 필터 설정을 변경했습니다.

mod_security는 (무엇보다도) 모든 요청 변수 (POST, GET 등)를 필터링합니다. 일반적인 해킹 SQL 주입 문자열 (예 : "; DELETE * FROM x WHERE 1)을 검사하지만 일반적으로 해킹에 사용되는 문자열과 방명록 및 활동은 필터링 할 수있는 문자열처럼 들립니다.

SecFilterEngine Off 

가 아니면, 단지 POST 요청을 해제 :

당신은 당신의 .htaccess에 다음 행을 추가하여에 mod_security를 ​​해제 할 수 있습니다

SecFilterScanPOST Off 

편집 더 나은 방법을 진술 :

<IfModule mod_security.c> 
    SecFilterEngine Off 
    SecFilterScanPOST Off 
</IfModule> 
+0

.htaccess에서 해제하려고했지만 모든 것이 손상되었습니다. 상세한 조사없이 신속하게 철회해야했습니다. 나는 호스팅 회사에 연락하여 알고 있는지 확인했습니다. – TrapezeArtist

+0

모든 것이 꽤 많이 있습니다;) 편집 아래의 명령문을 사용해보십시오. 너는 그다지 걱정할 필요가 없다. 무언가가 잘못되면 유리가 깨지기 만하면 유리가 부서지지 않습니다. – giorgio

+0

나는 우리의 웹 호스트 (Clook, they 've best)와 접촉했고, 그들은 mod_sec 몇 가지 규칙을 사용하지 않았다. 모든 것이 이제 좋게 보인다. 올바른 방향으로 나를 가르쳐 주셔서 감사합니다, 조르지오. – TrapezeArtist