Thursday, April 23, 2009

SUHOSIN PHP PROTECTOR

*perhatian ini bwt yg udah ngerti tentang instalasi PHP dan configurasi-nya, kalau mau baca terus silakan. kalau pusing tangung sendiri*


iye nama JEPANG dan mirip nama sayur sosin (kalau disunda... indonesianya sawi)
xixiixix...

tapi ini bukan sayuran... tetapi sebuah sofware protection untuk php....
you know lah... php sering dikata-katain kalau security nya lemah/kurang atau apa-kek...

nah dari situlah muncul sebuah riset untuk membuat security protection untuk aplikasi yang menggunakan php..
dan LADIES and GENTLEMEN lahir-lah SUHOSIN...
nah kurang lebih gitulah ceritanya...



mungkin ada yg nanya apa proteksi apa aja yg di lakukan SUHOSIN ini, antara lainnya ini :
  • cookie enkripsi
  • session ekripsi
  • mencegah session hijack
  • bisa memfilter inputan dari form hanya ASCII saja
  • dapat membatasi jumlah variabel (post, get) yang terima system
  • dapat membatasi jumlah upload dalam sekali request
  • dan masih banyak lagi (selangkapnya di : http://www.hardened-php.net/suhosin/a_feature_list.html)
SUHOSIN ada 2 macam, yang pertama adalah PATCH (tidal full protection) yg kedua EXTENSION (full protection), untuk tulisan ini yang digunakan adalah EXTENSION

sebelum dimulai gw beritahu dulu OS dan PHP di gw pake:

  • Operating system yg di gunakan UBUNTU Intrepid
  • PHP 5.2.6

kita mulai aja cara instalasinya,

1. download sourcenya di (http://www.hardened-php.net/suhosin/download.html)
2. ekstrak source code terserbut
3. source tersebut di compile dan di install, caranya seperti ini, ketikkan di console,

> cd suhosin
> phpize
> ./configure
> make
> make install

cara lengkap instalasi untuk macam2 os disini (http://www.hardened-php.net/suhosin/how_to_install_or_upgrade.html)

4. setelah selesai, maka akan menghasil-kan sebuah file yang bernama suhosin.so

5. selanjutkan kita buka file php.ini dan perhatikan nilai variabel extension_dir

6. pindahkan file suhosin.so ke alamat variabel extension_dir

7. masih di php.ini load file suhosin.so

extension=suhosin.so

8. masih di php.ini tulisan configurasi suhosin seperti ini:

[suhosin]

; Logging Configuration

suhosin.log.syslog.facility = 9

suhosin.log.use-x-forwarded-for = Off

; Filtering Options
suhosin.request.max_vars = 500
suhosin.post.max_vars = 500
suhosin.get.max_vars = 500
suhosin.cookie.max_vars = 500

suhosin.request.max_array_index_length = 500
suhosin.post.max_array_index_length = 500
suhosin.get.max_array_index_length = 500
suhosin.cookie.max_array_index_length = 500

suhosin.request.max_array_depth = 1000
suhosin.post.max_array_depth = 1000
suhosin.get.max_array_depth = 1000
suhosin.cookie.max_array_depth = 1000

suhosin.get.max_value_length = 200000
suhosin.post.max_value_length = 200000
suhosin.request.max_value_length = 200000
suhosin.cookie.max_value_length = 200000

suhosin.upload.max_uploads = 300
suhosin.upload.disallow_elf = Off
suhosin.session.max_id_length = 1024

;spam protection on forms
;suhosin.mail.protect = 1

; Executor Options

suhosin.memory_limit = 75

suhosin.executor.max_depth = 0

suhosin.executor.include.max_traversal = 6

suhosin.executor.disable_emodifier = Off

suhosin.executor.allow_symlink = Off

suhosin.executor.include.blacklist = "http://void.ru"

suhosin.upload.verification_script = /usr/local/upload_guardian/scanit.pl



itu adalah configurasi default dari suhosin, kalau ingin liat penjelasan dari tiap configurasinya
bisa di liat disini http://www.hardened-php.net/suhosin/configuration.html


8. restart server mu

> sudo /etc/init.d/apache2 restart


9. kalau installasi lo sukses maka akan muncul SUHOSIN di phpinfo seperti ini

2 comments:

  1. PERTAMAX!!

    Disitu featurenya tertulis:
    dapat membatasi jumlah upload dalam sekali request

    Bisa ga dibuat:
    dapat menjebol batasan upload dalam sekali request


    hehe..


    Udah di tes apa aja Suhosinnya den?

    ReplyDelete
  2. hahhahaah....

    aneh2 aja lo tom.......

    beberapa udah gw coba.....
    yg gw coba antara lain untuk suhosin.get.max_vars kalau variable melebihin batas... maka aplikasi akan tetap berjalan baik dan variable lebih nya akan di abaikan/tidak akan di proses oleh php

    ReplyDelete