ディフォールト.htaccess
提供:MDWiki
目次 |
基本
以下の RewriteCond は、全て「拒否する条件」です。ごくごく普通の静的なファイルで公開するウェブサイトの場合は、クエリ文字列やどうでもいいメソッドは、あらかた拒否するのが望ましい。こんなことへの対応をプログラム側でやるのはバカげている。もし許されている場合、以下の設定はすべて httpd.conf かインクルードされる設定ファイルに書くべきであり、.htaccess も無効にしておくのがベターです。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:Range} ([0-9]*-[0-9]*)(\s*,\s*[0-9]*-[0-9]*)+ [OR]
RewriteCond %{HTTP:Request-Range} ([0-9]*-[0-9]*)(\s*,\s*[0-9]*-[0-9]*)+ [OR]
RewriteCond %{REQUEST_METHOD} \
^(HEAD|TRACE|DELETE|TRACK|PROPFIND|OPTIONS|PROPPATCH|REPORT|MKACTIVITY|\
CHECKOUT|PUT|MERGE|CONNECT|PATCH|MKCOL|COPY|MOVE|LOCK|UNLOCK|VERSION_CONTROL|\
UNCHECKOUT|CHECKIN|UPDATE|LABEL|MKWORKSPACE|BASELINE_CONTROL|INVALID) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(libwww|curl|wget|python|nikto|scan).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(<|>|'|%0A|%0D|%27|%3C|%3E|%00).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(;|'|").*(union|select|insert|declare|drop|update|md5|benchmark).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(localhost|loopback|127\.0\.0\.1).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(<|>|'|%0A|%0D|%27|%3C|%3E|%00).* [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* - [F]
</IfModule>
会社からのアクセスだけに制限する
Order Deny,Allow Deny from all Allow from ***.***.***.***/29
www なしを www ありに強制
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(domain\.co\.jp)(:80)? [NC]
RewriteRule ^(.*) http://www.somedomain.co.jp$1 [R=301,L]
</IfModule>
特定のファイルを防御
<Files .htaccess> Order Allow,Deny Deny from all </Files>
SSLでの接続を強制
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
MarkupDancingで使っているもの
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP:Range} ([0-9]*-[0-9]*)(\s*,\s*[0-9]*-[0-9]*)+ [OR]
RewriteCond %{HTTP:Request-Range} ([0-9]*-[0-9]*)(\s*,\s*[0-9]*-[0-9]*)+ [OR]
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK|PROPFIND|OPTIONS|PROPPATCH|REPORT|MKACTIVITY|CHECKOUT|PUT|MERGE|CONNECT|PATCH|MKCOL|COPY|MOVE|LOCK|UNLOCK|VERSION_CONTROL|UNCHECKOUT|CHECKIN|UPDATE|LABEL|MKWORKSPACE|BASELINE_CONTROL|INVALID) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(libwww|curl|wget|python|nikto|scan).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(<|>|'|%0A|%0D|%27|%3C|%3E|%00).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(;|'|").*(union|select|insert|declare|drop|update|md5|benchmark).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(localhost|loopback|127\.0\.0\.1).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(<|>|'|&|%0A|%0D|%27|%3C|%3E|%00).* [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* - [F]
RewriteCond %{HTTP_HOST} ^markupdancing\.net [NC,OR]
RewriteCond %{HTTP_HOST} ^crossedge\.net [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.crossedge\.net [NC,OR]
RewriteCond %{HTTP_HOST} ^philsci\.info [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.philsci\.info [NC,OR]
RewriteCond %{HTTP_HOST} ^takayukikawamoto\.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.takayukikawamoto\.com [NC,OR]
RewriteCond %{HTTP_HOST} ^markupdancing\.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.markupdancing\.com
RewriteRule (.*) http://www.markupdancing.net/$1 [R=301]
リンク
- セキュリティ関連メモのトップヘ
- メインページへ