PHP Development တွင် error_log function သည်အမှားများ, စနစ်မှတ်တမ်းများကိုမှတ်တမ်းတင်ရန်သို့မဟုတ်သတ်မှတ်ထားသောအီးမေးလ်လိပ်စာများသို့ပို့ရန်အတွက်အမှားအယွင်းများကိုသစ်ထုတ်လုပ်ရန်အတွက်အလွန်လက်တွေ့ကျသောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည် developer များပြ problems နာများကိုဖြေရှင်းရန်နှင့်ပရိုဂရမ်တည်ငြိမ်မှုကိုတိုးတက်စေသည်။ သို့သော်မှတ်တမ်းတွင်ပရိုဂရမ်၏အ ဖွ င့်အသေးစိတ်အချက်အလက်များနှင့်အမှားအချက်အလက်များပါ 0 င်သောကြောင့်,
ဤဆောင်းပါးသည် PHP စီမံကိန်းများအတွက်မှားယွင်းစွာအသုံးချခြင်း မှလွဲ. မှတ်တမ်းများ ကိုမည်သို့ထိရောက်စွာတားဆီးနိုင်ပုံကိုဤဆောင်းပါးသည်လေ့လာမှုကိုလေ့လာလိမ့်မည်။
PHP's Error_log function ကိုအမှားအချက်အလက်များကိုထုတ်ဖော်ရန်အသုံးပြုသည်။ အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
<?php
error_log("အမှားတစ်ခုဖြစ်ပွားခဲ့သည်");
?>
၎င်းသည် log ရေးသားခြင်းနည်းလမ်းသုံးခုကိုထောက်ပံ့သည်။
အမှားမှတ်တမ်းကိုဆာဗာသို့ပို့သည် (ပုံမှန်)
သတ်မှတ်ထားသောဖိုင်သို့ပို့ပါ
သတ်မှတ်ထားသောအီးမေးလ်လိပ်စာသို့ပို့ပါ
ထို့အပြင် developer များသည် variable variable တန်ဖိုးများ, debug အချက်အလက်စသဖြင့်မှတ်တမ်းအကြောင်းအရာများကိုစိတ်ကြိုက်ပြုလုပ်နိုင်သည်။
အကယ်. ပရိုဂရမ်သည်အသုံးပြုသူမှအချက်အလက်များကိုမှတ်တမ်းတင်သည်ဆိုပါက inputs contents ကို filter လုပ်ထားခြင်းသို့မဟုတ်ကန့်သတ်မထားပါက၎င်းကိုအန္တရာယ်ရှိတဲ့အကြောင်းအရာများကိုတည်ဆောက်ခြင်းအားဖြင့်၎င်းကို manuicous code သို့မဟုတ် scripts များပါ 0 င်သည်။
ဥပမာ -
<?php
$input = $_GET['name'];
error_log("အသုံးပြုသူထည့်သွင်းမှုကို: " . $input);
?>
အကယ်. $ input တွင်အထူးအက္ခရာများသို့မဟုတ်အန္တရာယ်ရှိသော script များပါ 0 င်ပါကတိုက်ခိုက်သူသည်မှတ်တမ်းဖတ်ရှုခြင်းနှင့်ခွဲခြမ်းစိတ်ဖြာခြင်းကိုမှတ်တမ်းတင်ခြင်းအားဖြင့် Log Injection မှတဆင့်အကျိုးသက်ရောက်နိုင်သည်။
အချို့ဖြစ်ရပ်များတွင်တိုက်ခိုက်သူသည် Log Intries ထဲသို့ 0 င်ရောက်ခြင်းကိုမှတ်တမ်းတင်ခြင်း (သို့) သစ်သွင်းလိုင်းများကိုမှတ်တမ်းတင်ခြင်းနှင့်သစ်ဂုတ်သွင်းလိုင်းများကိုထည့်သွင်းခြင်းဖြင့်ဝင်ရောက်စွက်ဖက်သည်။
အကယ်. အထိခိုက်မခံသောသတင်းအချက်အလက်များကို log in, token, system path and database information စသည့်မှတ်တမ်းတွင်မှတ်တမ်းတင်ထားသည်ဆိုပါကမှတ်တမ်းကိုဝင်ရောက်ပြီးသည်နှင့်တိုက်ခိုက်သူသည်အရေးကြီးသောသတင်းအချက်အလက်များကိုရယူပြီးလုံခြုံရေးဆိုင်ရာအန္တရာယ်များကိုရရှိစေလိမ့်မည်။
အစွန်းရောက်သောကိစ္စများတွင် PHP ဖိုင်တွင် log file ကိုအရင်းအမြစ်တစ်ခုအနေဖြင့်အသုံးပြုပါကအန္တရာယ်ရှိသည့်မှတ်တမ်းပါအကြောင်းအရာများသည် Code Execute အားနည်းချက်များကိုဖြစ်ပေါ်စေနိုင်သည်။
၎င်းသည်အသုံးပြုသူထည့်သွင်းမှုမှတ်တမ်းသို့မဟုတ်အခြားတက်ကြွသောအကြောင်းအရာများကိုရေးသားခြင်း, အခြားတက်ကြွသောအကြောင်းအရာများနှင့်အခြားတက်ကြွသောအကြောင်းအရာများကိုရေးသားခြင်း, စီစစ်ခြင်းနှင့်လွတ်မြောက်ခြင်းကိုပထမဆုံးပြုလုပ်သင့်သည်။ သငျသညျ htmlspecialchars သို့မဟုတ် custom filtering functions ကိုသုံးနိုင်သည်။
ဥပမာ -
<?php
$input = $_GET['name'];
$safeInput = htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
error_log("အသုံးပြုသူထည့်သွင်းမှုကို: " . $safeInput);
?>
Passwords, Private keys များနှင့် log in sessuration tokens ကဲ့သို့သောအထိခိုက်မခံသောအချက်အလက်များကိုရေးခြင်းမပြုရန်ကြိုးစားပါ။ သင်အမှန်တကယ်လိုအပ်ပါကသိုလှောင်ခြင်းသို့မဟုတ်စာဝှက်ခြင်းသို့မဟုတ်စာဝှက်ခြင်းများကိုသင်စဉ်းစားနိုင်သည်။
ခွင့်ပြုချက်မရှိဘဲဝင်ရောက်ခြင်းသို့မဟုတ်ပြုပြင်မွမ်းမံခြင်းမှကာကွယ်ရန်သင့်တော်သောဖိုင်ခွင့်ပြုချက်ဖြင့် log file permissions များဖြင့်သတ်မှတ်သင့်သည်။ မှတ်တမ်းဖိုင်များ၏ဖတ်ရန်နှင့်ရေးရန်ခွင့်ပြုချက်များကို server ပေါ်တွင်တင်းကြပ်စွာထိန်းချုပ်ထားသင့်သည်။
အလွန်အကျွံ log files များကိုရှောင်ကြဉ်ပါ။
monolog ကဲ့သို့သောရင့်ကျက်သောမှတ်တမ်းများကို Monology ကဲ့သို့ Log Formatting, log rotation နှင့် log rotation နှင့် log rotation နှင့် log rot + level level level level level level) ကဲ့သို့သော Monolg Monolgs ကဲ့သို့သောရင့်ကျက်သောမှတ်တမ်းများကိုအကြံပြုပါသည်။
<?php
function safe_error_log($message) {
// မှတ်တမ်းအချက်အလက်ကိုစစ်ထုတ်ပါ,ထိန်းချုပ်မှုဇာတ်ကောင်ဖယ်ရှားပါ
$cleanMessage = preg_replace('/[\x00-\x1F\x7F]/u', '', $message);
error_log($cleanMessage);
}
$userInput = $_GET['comment'] ?? '';
$safeInput = htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8');
safe_error_log("အသုံးပြုသူမှတ်ချက်များ: " . $safeInput);
?>
Error_log ဆိုသည်မှာ Debugging နှင့်အမှားရှာဖွေခြင်းအတွက်အရေးကြီးသောကိရိယာတစ်ခုဖြစ်သည်။
မှတ်တမ်းသို့စာဖြင့်ရေးသားထားသောအချက်အလက်အားလုံးကိုစစ်ထုတ်ခြင်းနှင့်လွတ်မြောက်ခြင်းသည် Log ဆေးထိုးခြင်းကိုကာကွယ်ရန်သော့ချက်ဖြစ်သည်။
အထိခိုက်မခံသောသတင်းအချက်အလက်များကိုမှတ်တမ်းများတွင်သိုလှောင်ခြင်းနှင့် log file ခွင့်ပြုချက်ကိုကောင်းစွာစီမံပါ။
ရင့်ကျက်သောမှတ်တမ်းကြည့်ရှုခြင်းကို အသုံးပြု. မှတ်တမ်းလုံခြုံရေးနှင့်စီမံခန့်ခွဲမှုထိရောက်မှုကိုတိုးတက်စေရန်ကူညီနိုင်သည်။
Error_log ၏ဆင်ခြင်တုံတရားအသုံးပြုခြင်းသည်ဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာစွမ်းဆောင်ရည်ကိုတိုးတက်စေရုံသာမကစနစ်လုံခြုံရေးနှင့်ဟက်ကာများကို အသုံးပြု. ဟက်ကာများကိုတားဆီးနိုင်သည်။