පරිගණක, මෘදුකාංග
මෙම උත්සවයට ගෝලීය විචල්ය PHP. PHP හි ගෝලීය විචල්ය කරන්න
ඔබට ගොඩක් දැන ගැනීමට අවශ්ය පුළුල් ක්රියාකාරිත්වය ඇති සම්පූර්ණ වෙබ් අඩවිය නිර්මාණය කිරීම සඳහා. එය, PHP වේ - එහෙත් ඔහු අද්විතීය කරන්න පුළුවන්. මෙම පරිගණක භාෂාවෙන් ගෝලීය විචල්ය, එය ක්රියාත්මක වන ආකාරය දැන ගැනීමට සමහර විට ඉතා බොහෝ විට භාවිතා නොවේ, නමුත් සමහර විට එය අවශ්ය ය. ඒ අපි මේ ලිපියෙන් කරන්න යන්නේ, එය වන අතර, එය ක්රියාත්මක වන ආකාරය දේ අධ්යයනය කිරීමයි.
විෂය පථය
සුපුරුදු පරිදි, ඔවුන් දේශීය කාර්යය විෂය පථය සීමා වී ඇත. තවද වැඩි භාවිතා කළ හැකි වන අතර එහි සීමාවන් ඉක්මවා විචල්ය දැක ගොනු, බවට පත් කර ගන්නේ කෙසේද? මේ සඳහා, සහ PHP ගෝලීය විචල්ය ලබා ඇත.
බලන්නකෝ "ගෝලීය"
එවැනි පෙන්නුම් ක්රියාත්මක වීමෙන් පසු, දත්ත ගොනු සමග වැඩ කිරීමට හැකි වනු ඇත. කොහේ හරි මේ විචල්ය ගැන සඳහන් වෙතත් ඒවා නම්, එහි වැඩපිළිවෙල සහ සෑම විටම පාහේ ගෝලීය සංස්කරණය මත අවධානය යොමු කරනු ඇත.
ඇයි එවැනි අමුතු භාෂාව? එම අවස්ථාවේ දී පළාත් පාලන අනුවාද ඇති විය හැක බව. නමුත් ඔවුන් පමණක් එහිදී නිවේදනය එම ගොනු සඳහා ලබා ගත හැකි වනු ඇත. සියලු සෙසු ගෝලීය විචල්ය, PHP පන්ති ක්රියා කරනු ඇත. ඒ නිසා ඔබ පරෙස්සම් විය යුතු ය. ඇති ගෝලීය: හා කිසිදු සැකයක් නොමැති බව, මෙහි ඔවුන් වගේ දේ ගැන උදාහරණයක්.
එක් ගොනුවක් විචල්යයන් ගණනාවක් හැකියාව ලැබේ නම්, එය ගැටුමට හේතු වනු ඇත නිසා. නමුත් අපි වග බලා ගන්න කියන්න බැරි - දේශීය හෝ ගෝලීය විචල්ය කියවීමට හෝ සම්පූර්ණයෙන්ම අසාර්ථක කර ඇත. ඒ නිසා, එය උත්සවයකට ලියාපදිංචි වීමට නම්, එය කිසිදු ගැටලුවක් විය යුතුය. එහෙත් එහි දේශ සීමාවන් සඳහා විචල්ය භාවිතය ගැටලු සහගත විය. ඒ නිසා, එය සමීපව අධීක්ෂණය කොතැනකවත් පවා එම ගැටුමට පූර්ව අවශ්යතාවක් වන බව තහවුරු කර ගන්න අවශ්ය කේතය කෙටුම්පත් කිරීම ව්යුහය විය.
පටිගත තවත් කතාවක් තිබුණා
පූර්ව නිශ්චිත / superglobals
සෑම පරිගණක භාෂාවෙන් එහි කටයුතු සමහර වරලත් කරන සමහර නම් වේ. ඒ නිසා, එම නම PHP ගෝලීය විචල්ය තුල නිර්මාණය කිරීම සඳහා ක්රියා නොකරනු ඇත.
මෙම ක්රමලේඛන භාෂා සිය ලක්ෂණ ඇත. ඒ නිසා, එය මෙහි පූර්ව නිශ්චිත විචල්ය "සුපිරි" ස්ථාපනය වී නොමැති බව වැදගත් වේ, ඒ කියන්නේ, ඔවුන් ලබා ගත හැකි සියලුම ස්ථාන වේ. මම කොහොමද එය නිවැරදි කළ හැක්කේ කෙසේද? පූර්ව නිශ්චිත විචල්යයන්ට සමහර ප්රාදේශීය ප්රදේශයේ ලබාගත හැකි විය, එය පහත පරිදි ප්රකාශ කළ යුතුය :. ගෝලීය «විචල්ය" එය, පෙර කී පරිදි එම කටයුතු කරන බව පෙනේ, හරිද? එය බෙහෙවින් සැබෑ, නමුත් නැත. අප මේ වන විටත් ආදර්ශයක් "සටන්" ගැන අපි දැන් සලකා බලමු:
- ගෝලීය $ HTTP_POST_VARS;
- $ HTTP_POST_VARS දෝංකාර [ 'නම'].
ඔබ ඔවුන් අතර වෙනස දැනෙනවා? PHP ගෝලීය විචල්ය දී අවශ්යයෙන්ම කාර්යය ඇතුළත භාවිතා කළ යුතු නොවන බව සටහන් කර ගන්න. එය පවා එය ඇතුළත් වී සිටින ගොනුව තුල තැබිය හැක.
සබැඳි සහ ආරක්ෂාව
ඔබ දැක ගැනීමට හැකි වන පරිදි, PHP හි ගෝලීය විචල්ය ප්රශ්නයක් නොවෙයි නිර්මාණය කරන්න. එහෙත්, ඕනෑම විශේෂිත සාපේක්ෂ සබැඳි තිබේද? ගෝලීය භාවිතා කරන විට ඔව්, අනපේක්ෂිත හැසිරීම් විය හැක. නමුත් ඊට කලින්, ටිකක් backstory.
4.2.0 සංස්කරණය පෙරනිමි ලෙස register_globals විසින් එම නියෝගය ඉවත් කිරීමට මත-රාජ්ය වෙනස්. බොහෝ පරිශීලකයින් සඳහා, මේ ඉතා වැදගත්, නමුත් නිෂ්ඵල නොවේ. කෙසේ වෙතත්, එය සෘජුවම සංවර්ධනය නිෂ්පාදන ආරක්ෂාව බලපායි. ඔබ විචල්ය ගෝලීය, මෙම පරාමිතිය PHP වලට උපදෙස් කිරීමට අවශ්ය නම් සෘජුවම බලපෑමට නොවේ. කෙසේ වෙතත්, වැරදි භාවිතය දැනටමත් පූර්වාදර්ශ ආරක්ෂක නිර්මාණය කළ හැකිය.
ඒ නිසා ලියන කේතය ඝාතනය HTML-ආකාර යැවීමට උදාහරණයක් ලෙස, අවශ්ය කරන විවිධ විචල්ය ආරම්භනය පෙර ලෙස register_globals, සක්රිය නම්. ඒ නිසා, එය අක්රිය කිරීමට තීරණය කරන ලදී.
ඇයි php ගෝලීය විචල්ය මෙම නියෝගය රාජ්ය නොඅඩුව ලැබුණු වන්නේ කෙසේද? වැදගත් කරුණ නම්, සංවර්ධකයින් රාජ්ය සෑම විටම නිශ්චිතව ම එය කොහේ සිට පැමිණි කෙනෙක් දැයි යන ප්රශ්නය පිළිතුරු නොහැකි නැහැ විට බව ය. එක් අතකින් එය කේතය ලියන්න පහසු ය. නමුත් අනෙක් - එය ආරක්ෂක අවදානම් වේ. ඒ නිසා, වැරදි වළක්වා ගැනීමට මෙන්ම, දත්ත මිශ්ර හා උපදෙස් අක්රීය කොට ඇත.
දැන් අපි / සුරක්ෂිත නැත කේතය දෙස බලමු, මෙන්ම ගෝලීය PHP විචල්ය නිවේදනය දත්ත සමඟ පළුදු දී ගැනීමත් සමග කෙරෙන නඩු හඳුනා ගැනීමට ආකාරය. මේ සුන්දර පමණක් නොව, ක්රමයෙන් වැඩ පවතින පළමු පුද්ගලයා ඉරිතලා නැති බව වෙබ් අඩවි නිර්මාණය කිරීම සඳහා අත්යවශ්ය වේ.
අනිෂ්ට කේතය
ගේ විචල්ය බලය ලබා දී ඇති අය සඳහා සැබෑ බව තබා බලමු:
නම් (authenticate_user ()) {
= $ සැබෑ බලතල;
}
නම් ($ බලය) {
"/highly/sensitive/data.php" ද;
}
මෙම තත්වයේ දී, විචල්ය ස්වයංක්රීයව සකස් කළ හැකි ය. දත්ත හුදෙක් ප්රතිස්ථාපනය කළ හැකි බව සලකා, සහ තම මුල් පදිංචි ප්රභවය පිහිටුවා නැත, එසේ නම් ඕනෑම කෙනෙකුට එවැනි පරීක්ෂණයකින් සමත් වෙන කෙනෙක් මවා පාන හැක. අවශ්ය නම්, මෙම පහර (හෝ කුතුහලය නමුත් අද්දැකීම් අඩු පුද්ගලයා), අපගේ තර්ක බාධා විය හැක.
අපි එම නියෝගය වටිනාකම වෙනස් කරන්නේ නම්, මෙම කේතය අපි අවශ්ය ලෙස, නිවැරදිව වැඩ කරනු ඇත. නමුත් විචල්යයන් ඇරඹෙන මෙම වැඩසටහන් හොඳ ස්වරය පමණක් නොව, අප තිර රචනය ස්ථාවරත්වය යම් සහතිකයක් ලබා දෙයි.
කේතය විශ්වාස කටයුතු අනුවාදය
ඔබ ලකුණු හෝ ගමන් කළ හැකි වැඩ කටයුතු මඟ පෙන්වීම්, හෝ මෙම අරමුණු සාක්ෂාත් කර ගැනීම සඳහා වඩාත් සංකීර්ණ කේතය නියම. උදාහරණයක් ලෙස, මේ වගේ:
නම් (isset ($ _ සැසිය [ 'පරිශීලක නාමය'])) {
සුප්රසිද්ධ echo විධානය "හෙලෝ, {$ _ සැසිය [ 'පරිශීලක නාමය']} b> ';
} අර මනුස්සයා {
දෝංකාර "හෙලෝ, අමුත්තා b>
";
! "සාදරයෙන් පිළිගනිමු පරිශීලක" සුප්රසිද්ධ echo විධානය;
}
මෙම නඩුවේ ආදේශකයක් කරන්න, දුෂ්කර වනු ඇත. නමුත් තවමත් - හැකි. මෙය සිදු කිරීම සඳහා, ඔබ වේගවත් ප්රතිචාර මෙවලම් සපයන ලද සැලකිල්ල යොමු කළ යුතු. ඔබ විසින් PHP ගෝලීය විචල්ය ඇතුළත් කිරීමට අවශ්ය නම්, ඔබ පහත සඳහන් මෙවලම් භාවිතා කළ හැක: අපි පරාසයක ලබාගත් වටිනාකම් මොකක්ද කියලා නම්, එය තරගයක් සමග මෙම පරීක්ෂා කිරීමට තිර රචනය ලියාපදිංචි කිරීමට හැකි ය. ඇත්ත වශයෙන්ම, එය ද ආදේශ අගයන් එරෙහිව පූර්න ආරක්ෂාව සහතික විය නොහැක. නමුත් ඒ හැටි විකල්ප සැලකිය යුතු අවුල් වේ.
උත්සාහයන් වෙස් ගනිත් කිරීමට සම්බ
ගේ ඔබ මීට පෙර ලියා තේරුම් ආකාරය දැන් අපි සලකා බලමු. පහත දී කරන බව මෙම අවස්ථාවට, PHP ගෝලීය විචල්ය දී, ඔබ ප්රකාශ කිරීමට අවශ්ය වනු ඇත. අපි මේ පාඩම මාතෘකාවේ උකහා ගැනීම මත ගෙදර වැඩ වගේ කියලා කියන්න පුළුවන්. මෙන්න මේ:
Php
නම් (isset ($ _ කුකී [ 'C_COOKIE'])) {
} Elseif (isset ($ _ ලබා ගන්න [ 'C_COOKIE']) || isset ($ _ POST [ 'C_COOKIE'])) {
තැපැල් ( "administrarot@example.com",, $ _SERVER [ 'REMOTE_ADDR'] "අවධානය යොමු කරන්න, එහි තිර රචනය සොරා හා දත්ත සමග පළුදු කිරීමේ උත්සාහයක් වාර්තා කරන ලදී");
සුප්රසිද්ධ echo විධානය "බිඳුණු ආරක්ෂාව තියෙනවා හෝ එසේ පරිපාලක දැනුම් නැහැ උත්සාහ.";
පිටවීමේ;
} අර මනුස්සයා {
}
?>
දැන් පැහැදිලි කිරීමක් පනතකි. අර්ධ වශයෙන් C_COOKIE දෙවිගෙන් අපට එන. සම්පූර්ණයෙන්ම සෑහීමකට පත් කිරීමට අපේක්ෂා ප්රතිඵලයක් අනුව, අප එහි වටිනාකම පරීක්ෂා කිරීම හා ගැටලු නඩුවේ පරිපාලක දැනුම් දෙනු ඇත. එය එහි එන නොවන්නේ නම්, එවිට කිසිදු ක්රියාමාර්ගයක් ගැනීමට හා අවශ්ය වූයේ නැත. ඔබ හුදෙක් ලෙස register_globals උපදෙස් අක්රිය ඔබගේ කේතය ආරක්ෂිත කිරීමට නොවන බව තේරුම් ගැනීමට ඇති. ඒ නිසා, පරිශීලක සිට තිර රචනය ලැබෙන ඕනෑම විචල්ය, අපේක්ෂිත අගය සඳහා පරීක්ෂා කළ යුතුය.
නිගමනය
මෙන්න, සාමාන්යයෙන්, ඔබ ඔවුන්ගේ වැඩ කටයුතු ඔවුන් සාර්ථකව හා ආරක්ෂිතව භාවිතා කිරීමට ගෝලීය විචල්ය කිරීම පිළිබඳව දැන ගැනීමට අවශ්ය සියලු දේ. පහර නිරන්තරයෙන් ඔවුන්ගේ ක්රම සහ කුසලතා වැඩි දියුණු කිරීම වේ - ඇත්ත වශයෙන්ම, කිසිවෙක් ඔවුන් කළ නොහැකි භාවිතා කරන බව සම්පූර්ණ සහතිකයක්, ඒ බව පැවසීමට. එය කේතය ගෝලීය විචල්ය උපරිම භාවිතය සීමා කිරීමට ඒ නිසා හොඳය. එහෙත් වාසනාවකට මෙන්, මෙම ක්රමලේඛන භාෂා ව්යුහය හා සැලසුම් නිර්මාණය ලක්ෂණ මෙම අරමුණ ඉටු කර ගත හැක. සුබ පැතුම්!
Similar articles
Trending Now