Katika somo hili utajifunza jinsi ya kutumia filter_var() function kwa ajili ya kuchuja code zilizo hatari kwenye PHP file
FILTER YAANI UCHUJAJI WA TAARIFA:
Filter ni uchujaji wa taarifa. Katika ukurasa wa wavuti unahitaji kuchuja taarifa kwa ajili ya usalama. Tunatumia filter pia kuthibitisha uhalali na ukweli wa baadhi ya taarifa. Kwa mfano katika ukurasa wa kupokea madodoso, kuan kipengene cha kujaza email. Sasa tutahitaji filter ili kuweza kujuwa kama ni kweli hiyo taarifa iliyowekwa ni email ama sio.
Tunatumia filter pia kuondoa uchafu yaani taarifa ambazo hazihitajiki na kupata taarifa safi ambazo tunazihitaji. Baada ya ku filter hatuwa inayofuata ni ku validate yaani kuthibitisha uhalali wa hizo taarifa. Vitendo hivi kwa pamoja ni muhimu sana kwa ajili ya usalama wa taarifa, na kupunguza urahisi wa udukuzi wa taarifa kwenye database yako.
Ili kuchuja taarifa hizi kwanza utahitajika ku fanya sanitizing, baada yake unafanya validation. Sanitizing ndio ambayo itaondoa uchafu yaani visivyohitajika na validation ndo itathibitisha uhalali wa hizo taarifa.
Ili kuweza kufanya filter tunatumia filter_var() na katikakufanya validation tutatumia parameter ya filter inayoitwa FILTER_VALIDATE na katika kufanya sanitizing tutatumia parameter inayoitwa FILTER_SANITIZE
Kuondoa tag za html
<?php
$html = "<h1 style='color: red'>Hello World!</h1>";
echo $html;
?>
Code hizo hapo juu zitaonyesha matokeo haya
Hapo utaona maandishi ni ya wekundu ni kwa sababu ya hizo html tag. Sasa ikiwa ninataka kupata matokeo hayo bila ya kutumia hizo html tag. Hapo tuta filter yaani tutachuja hizo tag za html tutaziondoa kabisa na kupata matokeo yasiyo athiriwa na html.
Hapa kwanza tutatengeneza variable mbili. Ya kwanza kwa ajili ya kuhifadhia hizo string zenye html variable hii tutaiita $html na itakuwa hivi $html = "<h1 style='color: red'>Hello World!</h1>" Baada ya hapo tutatengeneza variable ya pili ambayo itabeba thamani za variable ya kwanza baada ya kuchujwa. Hapa ndipo ambapo tutakwenda kuchuja hizo taarifa. Kwa kuwa data zetu ni string hivyo tutatumia FILTER_SANITIZE_STRING Kama paramater ya function yetu. Hivyo basi ndani ya function yetu kwenye argument au parameter kutakuwa na vitu viwili ambavyo ni string ya kwanza na sanitizng argument.
Pia function nzima itakuwa ni thamani ya variable yetu ya pili. Variable hii tutaiitwa $new. Hiindio itabeba function nzima ya kuchuja taarifa. Hivyo basi code zitaonekana kama hivi:-
<?php
$html = "<h1 style='color: red'>Hello World!</h1>";
$new = filter_var($html, FILTER_SANITIZE_STRING);
echo $new;
?>
Kuchuja na ku validate kwa pamonja.
Zipo taarifa nyingi zinazotakiwa kuwa validatede. Kwa mfano email, namba, url, na mafaili. Vyote haya tunatumia FILTER_VALIDATE… kwa mfano
Email:- FILTER_VALIDATE_EMAIL
Namba:- FILTER_VALIDATE_INT
IP: FILTER_VALIDATE_IP
Link :- FILTER_VALIDATE_URL
Jinsi zinavyotumika nisawa kama mfano nitakaoutoa hapoc hini. Unaweza kutumia mfano huo kuvalidate taarifa nyingine.
Kwa mfano tunataka kuchuja na ku validate email Address
Kwanza tutatengeneza variable ya kwanza ili kubeba email yetu. Variable hii tutaiita $email mfano $email = "mafunzo@fb.com";kisha tutakuwa na variabe nyingine itakayobeba function. Na ndani ya function kutakuwa n argument 2 ambazo ni variable ya kwanza na FILTER_SANITIZER_EMAIL kwa ajili y a kuchuja email. Hivyo variable hii ya pili nitaiita $email2. Hivyo itaonekana hivi $email2 = filter_var($email, FILTER_SANITIZE_EMAIL); baada ya hapo email yetu itakuwa imechujwa na kama iliandikwa hovyo kwa mfano kuruka nafasi itawekwa sawa.
Kisha hatuwa inayofuata ni kui validate. Yaani kuithibitisha kuwa ni halali ama laa. Ili kuweza kupata ujumbe halisi kuwa data ni validi au laa, tutatumia if else statement, ili kma data ni validi ituambie kuwa emaili ipo sawa na kama invalidi ituambie email haipo sawa.
Condition tunazotakiwa kuzitest kwenye if else ni kuwa emndapo variambe $email2 kuwa haipo sawa na kilichofanyiwa uthibitisho basi itakuwa ni true hivyo data ni invalidi na ikiwa kauli hii ni false yaani sio kweli hapo data zitakuwa ni invalidi yaani zipo sawa. Kuna alama nizikumbushe hapa tulisha zizungumzia katika vipindi vya nyuma. Alama hizo ni ! na === alama hiyo ya kwanza ni ya kukataa, na hiyo ya pili ni kufananisha taarifa kwa aina na namna ilivyo. Angalia mafinzo ya javascript somola 5 limeeleza sana hizi alama.
Hivyo condtition yetu tunayoitest itakuwa hivi !filter_var($email2, FILTER_VALIDATE_EMAIL) === false
Ikiwa ni false maana yake data zipo validi na ikiwa vinginevyo maana yake data ni invalidi. Yaani hiyo codeition inasomeka hivi ikiwa matokeo ya uchujwaji wa $email2 hayapo sawa na matokeo ya uthibitishwaji basi taarifa hii sio haina mfanano. Hivyo basi ikiwa vinginevyo itakuwa validi lakini ikwa sawa na hayo maelezo basi itakuw ainvalidi. Hivyo basi code yote itasomeka hivi:-
<?php
$email = "mafunzo@fb.com";
// Uchujwaji
$email2 = filter_var($email, FILTER_SANITIZE_EMAIL);
// uthibitishwaji
if (!filter_var($email2, FILTER_VALIDATE_EMAIL) === false) {
echo("$email2 is validi");
} else {
echo("$email2 is invalid");
}
?>
Kwa mfano huu utaweza kuvalidate IP address na ural na zaidi.
Mwisho
Tukutane somo lijalo tutakwenda kujifujza kuhusu nanma ya ku kuondosha spaces, kujoin string na mengine ya muhimu na yanahusiana na uchujwaji wa hizi taarifa. Darsa hili na lijalo ni muhimu katika kujifunza usalama wa database yako.
Je! umeipenda hii post?
Ndio Hapana Save post
Imeandikwa na Rajabu Terehe 2023-10-18 Download PDF Share on facebook WhatsApp