Dynamic Blinkie Text Generator at TextSpace.net

Feedburner

I heart FeedBurner

Senin, 12 Desember 2016

PHP_SELF

Menggunakan PHP_SELF di bidang aksi formulir

Dalam artikel ini menunjukkan penggunaan variabel PHP_SELF dan bagaimana untuk menghindari eksploitasi PHP_SELF.

Apa variabel PHP_SELF?

PHP_SELF adalah variabel yang mengembalikan naskah saat dieksekusi. Variabel ini mengembalikan nama dan path dari file saat ini (dari folder root). Anda dapat menggunakan variabel ini di bidang aksi FORM. Ada juga eksploitasi tertentu yang Anda butuhkan untuk menjadi sadar. Kami akan membahas semua hal ini dalam artikel ini.

Kita sekarang akan melihat beberapa contoh.
echo $_SERVER['PHP_SELF'];
a) Misalkan file php Anda berada di alamat:
http://www.yourserver.com/form-action.php
Dalam hal ini, PHP_SELF akan berisi:
"/form-action.php"
b) Misalkan file php Anda berada di alamat:
http://www.yourserver.com/dir1/form-action.php
Untuk URL ini, PHP_SELF akan:
"/dir1/form-action.php"

Menggunakan variabel PHP_SELF di bidang tindakan dalam bentuk

Penggunaan umum dari variabel PHP_SELF adalah di bidang tindakan dari <form> tag. Bidang aksi FORM menginstruksikan mana untuk mengirimkan formulir data saat pengguna menekan "submit" tombol. Adalah umum untuk memiliki halaman PHP sama dengan handler untuk formulir juga.
Namun, jika Anda memberikan nama file di bidang tindakan, dalam kasus Anda kebetulan untuk mengubah nama file, Anda perlu memperbarui bidang tindakan juga; atau bentuk Anda akan berhenti bekerja.
Menggunakan variabel PHP_SELF Anda dapat menulis kode yang lebih umum yang dapat digunakan pada setiap halaman dan Anda tidak perlu mengedit bidang tindakan.
Pertimbangkan, Anda memiliki sebuah file yang bernama bentuk-action.php dan ingin memuat halaman yang sama setelah formulir dikirimkan. Biasa bentuk kode akan:
<form  method="post" action="form-action.php" >
Kita dapat menggunakan variabel PHP_SELF bukan "bentuk-action.php". kode menjadi:
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >

Kode lengkap "bentuk-action.php"

Berikut adalah kode gabungan, yang berisi bentuk dan script PHP.
<?php
if(isset($_POST['submit']))
{
    $name = $_POST['name'];
    echo "User Has submitted the form and entered this name : <b> $name </b>";
    echo "<br>You can use the following form again to enter a new name.";
}
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
   <input type="text" name="name"><br>
   <input type="submit" name="submit" value="Submit Form"><br>
</form>
Kode PHP ini berada di atas bagian HTML dan akan dieksekusi pertama. Baris pertama dari kode memeriksa apakah formulir tersebut diajukan atau tidak. Nama tombol submit adalah "submit". Ketika tombol submit ditekan $_POST['submit'] akan ditetapkan dan kondisi IF akan menjadi kenyataan. Dalam hal ini, kita menunjukkan nama yang dimasukkan oleh pengguna.
Jika formulir tidak disampaikan kondisi IF akan SALAH karena tidak akan ada nilai dalam $_POST['submit'] dan kode PHP tidak akan dieksekusi. Dalam hal ini, hanya form akan ditampilkan.

Apa eksploitasi PHP_SELF dan bagaimana untuk menghindari mereka

Variabel PHP_SELF digunakan untuk mendapatkan nama dan path dari file saat ini tetapi dapat digunakan oleh hacker juga. Jika PHP_SELF digunakan dalam halaman Anda maka pengguna dapat memasukkan garis miring (/) dan kemudian beberapa Cross Site Scripting (XSS) perintah untuk mengeksekusi.
Lihat di bawah untuk contoh:
<form name="test" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Sekarang, jika pengguna telah memasuki URL normal pada address bar seperti
http://www.yourdomain.com/form-action.php
kode di atas akan diterjemahkan sebagai:
<form name="test" action="form-action.php" method="post">
Ini adalah kasus normal.
Sekarang mempertimbangkan bahwa pengguna telah disebut script ini dengan memasukkan URL berikut di address bar browser:
http://www.yourdomain.com/form-action.php/%22%3E%3Cscript%3Ealert('xss')%3C
/script%3E%3Cfoo%22

Dalam hal ini, setelah PHP pengolahan kode menjadi:
<form name="test" method="post" action="form-action.php"/>
<script>alert('xss')</script><foo"">
Anda dapat melihat bahwa kode ini telah menambahkan tag script dan perintah peringatan. Ketika halaman ini dimuat, pengguna akan melihat kotak peringatan. Ini hanya contoh sederhana bagaimana variabel PHP_SELF dapat dimanfaatkan.
Setiap kode JavaScript dapat ditambahkan antara tag "script". <script>....HERE....</script> . Seorang hacker dapat link ke file JavaScript yang mungkin terletak pada server lain. Bahwa file JavaScript dapat memegang kode berbahaya yang dapat mengubah variabel global dan juga dapat mengirimkan formulir ke alamat lain untuk menangkap data pengguna, misalnya.

Cara Hindari eksploitasi PHP_SELF

Eksploitasi PHP_SELF dapat dihindari dengan menggunakan () htmlentities fungsi. Misalnya, kode bentuk harus seperti ini untuk menghindari eksploitasi PHP_SELF:
<form name="test" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
The htmlentities () fungsi mengkodekan entitas HTML. Sekarang jika pengguna mencoba untuk mengeksploitasi variabel PHP_SELF, upaya tersebut akan gagal dan hasil memasukkan kode berbahaya di URL akan menghasilkan output sebagai berikut:
<form name="test" method="post"
action="form-action.php/&quot;&gt;&lt;script&gt;alert('xss')&
lt;/script&gt;&lt;foo">
Seperti yang Anda lihat, script bagian sekarang 'dibersihkan'.
Jadi jangan lupa untuk mengkonversi setiap terjadinya "$_SERVER['PHP_SELF']" menjadi "htmlentities($_SERVER['PHP_SELF'])" di seluruh naskah Anda.
CATATAN:
Beberapa server PHP dikonfigurasi untuk memecahkan masalah ini dan mereka secara otomatis melakukan conversion.But ini, mengapa mengambil risiko? biasakan untuk menggunakan htmlentities () dengan PHP_SELF.

Tidak ada komentar:

Posting Komentar