2016-06-03 2 views
0

을 중지 나는 다음과 같은 .htaccess 파일이 있습니다 일반적인 XSS 공격htaccess로는 XSS

<IfModule mod_rewrite.c> 
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] 
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] 
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) 
RewriteRule .* index.php [F,L] 
</IfModule> 

어떻게해야 중지 :

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /generation/ 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /generation/index.php [L] 
</IfModule> 

# END WordPress 
Options -Indexes 

# Turn off display_errors 
php_flag display_errors off​ 

내가 다음 예제와 결합 할을 두 번째 규칙을 새 규칙으로 결합합니다. 만약 내가 단지 그 쿼리 문자열을 추가하면 페이지 내 링크는 단지 404 페이지를 반환하고 있습니다 ...

답변

0

나는이 방법으로 XSS를 중단하는 데 성공할 가능성이 매우 높다고 생각하지 않습니다. OWASP XSS Filter Evasion Cheat Sheet을 보면 간단한 XSS 필터를 무시할 수있는 많은 방법이 있습니다. 또한 나는 GLOBALS와 _REQUEST가 Apache가 아니라 PHP 개념이라고 생각해야한다. 그런 식으로는 작동하지 않지만 틀릴 수도있다.

웹 응용 프로그램 방화벽이 수행하려고하는 요지는 무엇입니까? 이 경로를 따라 가고 싶다면 mod_security를 ​​OWASP 룰셋이나 이와 비슷한 것으로 사용하는 것이 낫다고 생각한다.

여전히 XSS는 입력 문제는 아니지만 출력 문제입니다. 물론 입력을 필터링하여 많은 XSS 결함을 막을 수 있지만 일반적으로 유효한 입력으로 간주 될 수있는 것들은 XSS로 이어질 수 있습니다.

XSS는 사용자 컨텐트가 페이지에 렌더링되고 주어진 컨텍스트에 대해 적절하게 인코딩/이스케이프 처리되어야하므로 처리해야합니다.