Tuesday, July 12, 2016

[Tutorial]Set Custom Error Handler[/PHP]

Hello MSF :bh: 

php programming မွာ error ျဖစ္လို့ error ျပရင္ 
sql error ဆိုရင္

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /var/www/html/index.php on line 12


ဆိုျပီးျပတယ္။

က်ြန္ေတာ္တို့ က custom error handler တစ္ခုကို create လုပ္ျပီး ျပလို့ရပါတယ္။

php မွာပါတဲ့ function တစ္ခုကို ယူသံုးရမွာပါ။

သံုးရမဲ့ function ကေတာ့

set_error_handler("myErrorHandler");


myErrorHandler ဆိုတာကေတာ့ custom function တစ္ခု ျဖစ္ပါတယ္။

example .

<?php
// Creating Error Handler Function
function myErrorHandler($error_level,$error_message,$error_file,$error_line,$error_context){
  
    echo "Error Level : ". $error_level;
    echo "<br>";
    echo "Error Message : ". $error_message;
    echo "<br>";
    echo "Error File Name : ". $error_file;
    echo "<br>";
    echo "Error Line No: ". $error_line;
    echo "<br>";
    echo "Error error context : ". $error_context;
    echo "<br>";
  
}
// set error handler :P
set_error_handler("myErrorHandler");

// print the $test variable that not exists
echo ($test);
// so the error happen

?>


See the pic



photo ေလးကိုျကည့္ျပီးနားလည္မယ္ထင္ပါတယ္။ :hehe:

ေအာက္ php code ေတြကေတာ့
error msg ေတြကို www-data@localhost.localdomain mail ကို send လုပ္ေပးမွာျဖစ္ပါတယ္
( localhost မွာ စမ္းထားတဲ့ အတြက္ www-data@localhost.localdomain mail ကို ထဲ့ထားတာျဖစ္ပါတယ္ )



<?php
error_reporting(0); // Do Not Show any error in web page.

// Error Handler Function Create
function myErrorHandler($error_level,$error_message,$error_file,$error_line,$error_context){

   $msg = "Error Level : ". $error_level;
   $msg .= "\nError Message : ". $error_message;
   $msg .= "\nError File Name : ". $error_file;
   $msg .= "\nError Line No : ". $error_line;
   $msg .= "\nError context : ". $error_context;
   $to = "www-data@localhost.localdomain";
   $subject = "[Error Happen]";
   mail($to, $subject, $msg);


 
}
// set error handler :P
set_error_handler("myErrorHandler");

// print the $test variable that not exists
echo ($test);
// so the error happen
echo "Hello";
?>


ဒါဆိုရင္ error msg ေတြကို ေအးေအးေဆးေဆး ထိုင္ျကည့္ေနေတာ့ :P


To see error msg in localhost :hehe:  ( tested in Kali Linux )


tail -f -n 0 /var/mail/www-data

စမ္းျကည့္ရေအာင္ ။  :hehe:

Web page မွာ error မျပပါဘူး
Hello ဆိုတဲ့ စာေတာ့ လာျပပါတယ္
User က Error message ကို ျမင္လိုက္ရမွာ မဟုတ္ပါေတာ့ပါဘူး။

web admin ကသာ error msg ကို ျမင္ေတြ့ရမွာျဖစ္ပါတယ္။




ဒါဆိုရင္ error ကို troubleshoot လုပ္လို့ရပါျပီ။
Normal Error လား
Attacker တစ္ေယာက္ရဲ့ attack ျပုလုပ္မွုေျကာင့္ တက္တဲ့ error လားဆိုျပီး :P :P

:bh: :bh:

နားမလည္ တာရွိလို့ရွိရင္ ေမးလို့ရပါတယ္ဗ်ို့။

:bh: :bh:


Take Care!

No comments:

Post a Comment