Selasa, 19 Februari 2013

Modifikasi .htaccess menangkal injeksi mysql dan serangan lainnya dari hacker

Upaya injeksi MySQL adalah salah satu serangan hacking terhadap website yang paling umum dilakukan di server berbasis PHP. Jika situs Web Anda di-host di dedicated server atau virtual, solusi terbaik adalah untuk memberikan keamanan dengan aturan mod_security yang tepat. Namun, jika Anda berada di shared hosting, ini akan menjadi masalah. Jika Anda berpikir bahwa itu tidak mungkin untuk melindungi situs Anda terhadap metode hacking di shared hosting, Anda salah. Meskipun tidak mungkin untuk menggunakan cara lebih baik untuk melindungi situs Anda, Anda masih bisa untuk melindungi dari upaya hacking menggunakan metode htaccess. Untuk mengimplementasikan perlindungan, tambahkan .htaccess di /public_html dengan kode berikut, atau membuat file baru yang disebut .htaccess, jika Anda tidak menggunakan lagi, dan tempatkan di folder utama situs Web Anda:
# Menutupi versi web server dan index
ServerSignature Off
Options -Indexes

# Enable rewrite engine
RewriteEngine On
# Blokir metode permintaan yang mencurigakan
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK|DEBUG) [NC]
RewriteRule ^(.*)$ - [F,L]
# Blok WP timthumb hack
RewriteCond %{REQUEST_URI} (timthumb.php|phpthumb.php|thumb.php|thumbs.php) [NC]
RewriteRule . - [S=1]
# Blokir permintaan User_Agent yang mencurigakan
RewriteCond %{HTTP_USER_AGENT} (libwww-perl|wget|python|nikto|curl|scan|java|winhttp|clshttp|loader) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (<|>|'|%0A|%0D|%27|%3C|%3E|) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|"|)|(|%0A|%0D|%22|%27|%28|%3C|%3E|).*(libwww-perl|wget|python|nikto|curl|scan|java|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]
RewriteCond %{THE_REQUEST} ? HTTP/ [NC,OR]
RewriteCond %{THE_REQUEST} /* HTTP/ [NC,OR]
RewriteCond %{THE_REQUEST} etc/passwd [NC,OR]
RewriteCond %{THE_REQUEST} cgi-bin [NC,OR]
RewriteCond %{THE_REQUEST} (%0A|%0D) [NC,OR]
# Blokir injeksi MySQL, RFI, base64, dsb.
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(..//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]
RewriteCond %{QUERY_STRING} =PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC,OR]
RewriteCond %{QUERY_STRING} (../|..) [OR]
RewriteCond %{QUERY_STRING} ftp: [NC,OR]
RewriteCond %{QUERY_STRING} http: [NC,OR]
RewriteCond %{QUERY_STRING} https: [NC,OR]
RewriteCond %{QUERY_STRING} =|w| [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)cPath=http://(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C).*iframe.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^i]*i)+frame.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [NC,OR]
RewriteCond %{QUERY_STRING} base64_(en|de)code[^(]*([^)]*) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} ^.*([|]|(|)|<|>).* [NC,OR]
RewriteCond %{QUERY_STRING} (NULL|OUTFILE|LOAD_FILE) [OR]
RewriteCond %{QUERY_STRING} (./|../|.../)+(motd|etc|bin) [NC,OR]
RewriteCond %{QUERY_STRING} (localhost|loopback|127.0.0.1) [NC,OR]
RewriteCond %{QUERY_STRING} (<|>|'|%0A|%0D|%27|%3C|%3E|) [NC,OR]
RewriteCond %{QUERY_STRING} concat[^(]*( [NC,OR]
RewriteCond %{QUERY_STRING} union([^s]*s)+elect [NC,OR]
RewriteCond %{QUERY_STRING} union([^a]*a)+ll([^s]*s)+elect [NC,OR]
RewriteCond %{QUERY_STRING} (;|<|>|'|"|)|%0A|%0D|%22|%27|%3C|%3E|).*(/*|union|select|insert|drop|delete|update|cast|create|char|convert|alter|declare|order|script|set|md5|benchmark|encode) [NC,OR]
RewriteCond %{QUERY_STRING} (sp_executesql) [NC]
RewriteRule ^(.*)$ - [F,L]
# Tolak akses browser ke file konfigurasi

Order allow,deny
Deny from all
#Allow from 1.2.3.4

Ini bekerja dengan baik dan telah diuji dengan WordPress dan Joomla!. Jika Anda ingin menjalankan install.php Anda atau langsung mengakses file konfigurasi dengan browser Anda, menghapus simbol hash pada akhir file sebelum “#Allow from 1.2.3.4″ dan ganti menjadi “Allow from1.2.3.4″ dengan IP Address Anda. Untk mengetahui IP Address anda bisa mencarinya di Google atau di sini. Misalnya IP anda 202.202.202.202 maka di bagian akhir .htacces
Deny from all
#Allow from 1.2.3.4

dianti menjadi IP anda:
Deny from all
Allow from 202.202.202.202


from http://blog.cyberspace.co.id

Unknown

Author & Editor

Has laoreet percipitur ad. Vide interesset in mei, no his legimus verterem. Et nostrum imperdiet appellantur usu, mnesarchum referrentur id vim.

0 komentar:

Posting Komentar