Sunday, April 3, 2016

Blokir user ketika gagal login lebih dari 3 kali

Assalamualaikum. Wr .wb.
Halo teman-teman semua, jumpa lagi dengan saya, masih di tutorial sederhana native php. Pada kesempatan kali ini saya akan membagikan tutorial blok user yg gagal login lebih dari 3 kali, cara ini biasanya diterapkan pada halaman login administrator untuk menghindari serangan brute force, apa itu brute force ? sederhanya, brute force adalah serangan hacking dengan cara menebak-nebak username dan password suatu halaman login secara terus menerus, sebagai developer website tentu kita harus waspada terhadap serangan ini, ada banyak cara menanggulangi serangan brute force dan salah satunya dengan cara blokir user apabila  gagal login lebih dari 3 kali.
Sebelum lanjut ke tutorial, perlu diketahui kita disini akan memanfaatkan fungsi $_SESSION untuk menghitung berapa kali user mengklik tombol login. Langsung saja codenya sebagai berikut.

buat function login()
<?php
session_start();   
function login(){
 echo '<table>
  <form method="post" action="">
   <tr>
    <td>Username</td><td><input type="text" name="user"></td>
   </tr>
   <tr>
    <td>Password</td><td><input type="text" name="pass"></td>
   </tr>
   <tr>
    <td></td><td><input type="submit" name="submit" value="Login"></td>
   </tr>
  </form>
 </table>';
}
kemudian buat function blokir_user().
function blokir_user(){
 echo "<h1> Anda telah diblokir ! </h1>";
}
ketika kita menjalankan code diatas apa yang terjadi ? ................
tidak terjadi apa-apa karna kita tidak memanggil function-nya hehe.

berikut code pengecekan sessionya.
//jika tombol login diklik
if(isset($_POST['submit']))
{
  if($_POST['user']=="user" && $_POST['pass']=="123")
  {
   // disini code ketika login berhasil
   // abaikan saja karna pembahasan kali ini adalah ketika login gagal  
  }
  else
  {
   //jika terdapat session bernama "auth"
   //untuk penamaan session bebas ya, mau "auth", "cemungud", "follback_kaka" terserah :D
   if(isset($_SESSION['auth']))
   {
    //jika user gagal masuk selama 3 kali atau lebih
    if($_SESSION['auth']>3 || $_SESSION['auth']==3){
      //set nilai session "auth" ke 4
      $_SESSION['auth']=4;
      //jalankan function blokir_user
      blokir_user();
    }
    //jika tidak
    else{
      //session "auth" ditambah 1
      $_SESSION['auth']=$_SESSION['auth']+1;
      //jalankan function login()
      login();
    }
   }
   //jika tidak ada session "auth"
   else{
     //daftarkan session "auth", dan beri nilai 1
     $_SESSION['auth']=1;
     //jalankan function login()
     login();
   }

  }
}
//jika tombol login tidak diklik ya tampilkan form loginnya
else
{
  //jalankan function login()
  login();
}

kemudian kita tambahkan code untuk mengetahui brapa kali user mencoba login.
//ini script untuk menampilkan brapa kali user mencoba login
if(isset($_SESSION['auth'])){
 echo $_SESSION['auth'];
}
mari kita test.halaman awal.

gagal login 1 kali

gagal login 2 kali.


gagal login 3 kali

kemudian diblokir dan tidak bisa login lagi.



FULL CODE
<?php
session_start();   
function login(){
 echo '<table>
  <form method="post" action="">
   <tr>
    <td>Username</td><td><input type="text" name="user"></td>
   </tr>
   <tr>
    <td>Password</td><td><input type="text" name="pass"></td>
   </tr>
   <tr>
    <td></td><td><input type="submit" name="submit" value="Login"></td>
   </tr>
  </form>
 </table>';
}
//jika tombol login diklik
if(isset($_POST['submit']))
{
  if($_POST['user']=="user" && $_POST['pass']=="123")
  {
   // disini code ketika login berhasil
   // abaikan saja karna pembahasan kali ini adalah ketika login gagal  
  }
  else
  {
   //jika terdapat session bernama "auth"
   //untuk penamaan session bebas ya, mau "auth", "cemungud", "follback_kaka" terserah :D
   if(isset($_SESSION['auth']))
   {
    //jika user gagal masuk selama 3 kali atau lebih
    if($_SESSION['auth']>3 || $_SESSION['auth']==3){
      //set nilai session "auth" ke 4
      $_SESSION['auth']=4;
      //jalankan function blokir_user
      blokir_user();
    }
    //jika tidak
    else{
      //session "auth" ditambah 1
      $_SESSION['auth']=$_SESSION['auth']+1;
      //jalankan function login()
      login();
    }
   }
   //jika tidak ada session "auth"
   else{
     //daftarkan session "auth", dan beri nilai 1
     $_SESSION['auth']=1;
     //jalankan function login()
     login();
   }

  }
}
//jika tombol login tidak diklik ya tampilkan form loginnya
else
{
  //jalankan function login()
  login();
}
function blokir_user(){
 echo "<h1> Anda telah diblokir ! </h1>";
}

//ini script untuk menampilkan brapa kali user mencoba login
if(isset($_SESSION['auth'])){
 echo $_SESSION['auth'];
}

ok cukup sekian tutorial sederhana dari saya, semoga bermanfaat dan trima kasih banyak.
Wassalamualaikum. wr.wb.

0 komentar:

Post a Comment