ຄອມພິວເຕີ, ຊອຟແວ
PHP ຕົວແປທົ່ວໂລກໃນການທໍາງານໄດ້. ເຮັດໃຫ້ຕົວແປທົ່ວໂລກໃນ PHP
ການສ້າງເວັບໄຊຢ່າງເຕັມທີ່, ຊຶ່ງມີການທໍາງານຢ່າງກວ້າງຂວາງຄຸນຈໍາເປັນຕ້ອງຮູ້ຫຼາຍ. ແຕ່ສິ່ງທີ່ສາມາດເຮັດໃຫ້ເຂົາເປັນເອກະລັກຢ່າງແທ້ຈິງ - ມັນເປັນ PHP. ຕົວແປທົ່ວໂລກໃນພາສາການຂຽນໂປຣແກຣມບໍ່ໄດ້ຖືກນໍາໃຊ້ຫຼາຍມັກຈະ, ແຕ່ບາງຄັ້ງການທີ່ຈະຮູ້ຈັກວິທີມັນເຮັດວຽກ, ບາງຄັ້ງມັນເປັນສິ່ງຈໍາເປັນ. ທີ່ແມ່ນການສຶກສາສິ່ງທີ່ມັນເປັນແນວໃດມັນເຮັດວຽກ, ພວກເຮົາຈະເຮັດແນວໃດໃນບົດຄວາມນີ້.
ຂອບເຂດ
ຕັ້ງແຕ່ຕອນຕົ້ນ, ພວກເຂົາເຈົ້າໄດ້ຖືກຈໍາກັດຂອບເຂດຫນ້າທີ່ທ້ອງຖິ່ນ. ແລະວິທີການເຮັດໃຫ້ຕົວປ່ຽນແປງໄຟລ໌ເຫັນໃນເຂດແດນຂອງຕົນ, ຊຶ່ງໃນນັ້ນຫຼາຍແລະສາມາດນໍາໃຊ້? ດ້ວຍເຫດດັ່ງກ່າວນີ້, ແລະສະຫນອງໃຫ້ໃນຕົວແປສ່ວນກາງ PHP.
ໃຜວ່າ "ທົ່ວໂລກ"
ຫຼັງຈາກການດໍາເນີນການດັ່ງກ່າວສະແດງເຖິງມູນທີ່ໄດ້, ຂໍ້ມູນທີ່ຈະສາມາດເຮັດວຽກຮ່ວມກັບເອກະສານໃດໆ. ຖ້າຫາກວ່າ somewhere ມີເອກະສານໃຫ້ກັບຕົວແປດັ່ງກ່າວນີ້, ໂຄງການໄດ້ສະເຫມີຈະເອົາໃຈໃສ່ກ່ຽວກັບການສະບັບພາສາໃນທົ່ວໂລກ.
ເປັນຫຍັງດັ່ງກ່າວເປັນພາສາ strange? ຄວາມຈິງທີ່ວ່າໃນເວລາດຽວກັນອາດຈະມີສະບັບໃນທ້ອງຖິ່ນ. ແຕ່ພວກເຂົາເຈົ້າຈະສາມາດໃຊ້ໄດ້ສະເພາະແຕ່ສໍາລັບໄຟລ໌ທີ່ບ່ອນທີ່ປະກາດ. ແລະສໍາລັບການທັງຫມົດສ່ວນທີ່ເຫຼືອຈະປະຕິບັດຕົວແປສ່ວນກາງຫ້ອງຮຽນ PHP. ເພາະສະນັ້ນທ່ານຈະຕ້ອງລະມັດລະວັງ. ແລະວ່າມີຄວາມສົງໃສບໍ່ມີ, ນີ້ແມ່ນຕົວຢ່າງຂອງສິ່ງທີ່ເຂົາເຈົ້າເບິ່ງຄື: ທົ່ວໂລກ.
ເນື່ອງຈາກວ່າຖ້າຫາກວ່າຫນຶ່ງເອກະສານຈະມີການເຂົ້າເຖິງຈໍານວນຂອງຕົວປ່ຽນແປງ, ມັນຈະເຮັດໃຫ້ເຂົາເຈົ້າມີຂໍ້ຂັດແຍ່ງ. ແຕ່ພວກເຮົາບໍ່ສາມາດເວົ້າວ່າສໍາລັບໃຫ້ແນ່ໃຈວ່າ - ທ້ອງຖິ່ນໃນທົ່ວໂລກຫຼືຕົວແປອ່ານແລະພ້ອມກັນລົ້ມເຫລວ. ດັ່ງນັ້ນ, ຖ້າຫາກວ່າມັນແມ່ນເພື່ອລົງທະບຽນໃນການທໍາງານ, ມັນຄວນຈະເປັນບັນຫາທີ່ບໍ່ມີ. ແຕ່ການນໍາໃຊ້ຂອງຕົວປ່ຽນແປງສໍາລັບການຊາຍແດນຂອງຕົນທີ່ຈະເປັນບັນຫາ. ດັ່ງນັ້ນ, ໂຄງປະກອບການຂອງຮ່າງຂໍ້ກໍານົດທີ່ຈໍາເປັນເພື່ອຕິດຕາມກວດກາຢ່າງໃກ້ຊິດແລະເຮັດໃຫ້ແນ່ໃຈວ່າວ່າ nowhere ແມ່ນມີແມ້ກະທັ້ງເປັນ prerequisite ກັບຂໍ້ຂັດແຍ່ງກ່າວເກີດຂຶ້ນ.
embodiment ຂອງການບັນທຶກຂອງຄົນອື່ນ
ກໍາຫນົດໄວ້ລ່ວງ / superglobals
ໃນພາສາການຂຽນໂປຣແກຣມທຸກມີຊື່ບາງທີ່ chartered ສໍາລັບບາງຄົນປະຕິບັດຫນ້າຂອງຕົນ. ເພາະສະນັ້ນ, ການສ້າງໃນຕົວແປ PHP ທົ່ວໂລກຂອງຊື່ດຽວກັນຈະບໍ່ເຮັດວຽກ.
ພາສາການຂຽນໂປຣແກຣມນີ້ມີລັກສະນະເປັນຂອງຕົນເອງ. ດັ່ງນັ້ນ, ມັນເປັນສິ່ງສໍາຄັນວ່າຕົວແປ predefined ນີ້ຍັງບໍ່ໄດ້ຕິດຕັ້ງ "Super", ວ່າແມ່ນ, ພວກເຂົາເຈົ້າແມ່ນບໍ່ສາມາດໃຊ້ໃນສະຖານທີ່ທັງຫມົດ. ແນວໃດຂ້າພະເຈົ້າສາມາດແກ້ໄຂມັນ? ການປ່ຽນແປງກໍາຫນົດໄວ້ລ່ວງແມ່ນສາມາດໃຊ້ໄດ້ຢູ່ບໍລິເວນທ້ອງຖິ່ນຈໍານວນຫນຶ່ງ, ມັນຕ້ອງໄດ້ຮັບການປະກາດດັ່ງຕໍ່ໄປນີ້ :. Global « Variable " ມັນເບິ່ງຄືວ່າຈະເປັນເຊັ່ນດຽວກັນກັບບອກກ່ອນ, ສິດ? ມັນເປັນຄວາມຈິງ, ແຕ່ບໍ່ແມ່ນຂ້ອນຂ້າງ. ຂໍໃຫ້ເຮົາເບິ່ງແລ້ວ "ສູ້ກັບ" ຕົວຢ່າງ:
- $ ທົ່ວໂລກ HTTP_POST_VARS;
- echo $ HTTP_POST_VARS [ 'name'].
ທ່ານມີຄວາມຮູ້ສຶກຄວາມແຕກຕ່າງລະຫວ່າງເຂົາເຈົ້າແນວໃດ? ໃຫ້ສັງເກດວ່າໃນຕົວແປສ່ວນກາງ PHP ບໍ່ຈໍາເປັນຕ້ອງໄດ້ຮັບການນໍາໃຊ້ພາຍໃນການເຄື່ອນໄຫວ. ມັນສາມາດເຖິງແມ່ນວ່າຖືກເກັບໄວ້ໃນໄຟລ໌ທີ່ໄດ້ຖືກລວມເຂົ້າໃນມັນ.
ລິ້ງຄ໌ແລະຄວາມປອດໄພ
ຂະນະທີ່ທ່ານສາມາດເບິ່ງໃນ PHP ສ້າງຕົວແປທົ່ວໂລກແມ່ນບໍ່ມີບັນຫາ. ແຕ່ບໍ່ມີການເຊື່ອມຕໍ່ພີ່ນ້ອງໃນດ້ານ? ແມ່ນແລ້ວ, ອາດຈະມີພຶດຕິກໍາທີ່ບໍ່ຄາດຄິດໃນເວລາທີ່ການນໍາໃຊ້ໃນທົ່ວໂລກ. ແຕ່ກ່ອນວ່າ, ເປັນ backstory ນ້ອຍ.
ສະບັບພາສາ 420 ຄໍາສັ່ງໂດຍ register_globals ໄວ້ໃນຕອນຕົ້ນມີການປ່ຽນແປງຈາກເບື້ອງບົນ, ລັດຈະອອກ. ສໍາລັບຜູ້ໃຊ້ສ່ວນໃຫຍ່, ນີ້ບໍ່ແມ່ນສິ່ງສໍາຄັນທີ່ສຸດ, ແຕ່ວ່າໃນ vain. ຫຼັງຈາກທັງຫມົດ, ມັນໄດ້ໂດຍກົງຜົນກະທົບຕໍ່ຄວາມປອດໄພຂອງຜະລິດຕະພັນພັດທະນາໄດ້. ຖ້າຫາກວ່າທ່ານຕ້ອງການເພື່ອເຮັດໃຫ້ການປ່ຽນແປງໃນທົ່ວໂລກ, PHP, ຄໍາສັ່ງກ່ຽວກັບຕົວກໍານົດການນີ້ບໍ່ໄດ້ຮັບຜົນກະທົບໂດຍກົງ. ຢ່າງໃດກໍຕາມ, ການນໍາໃຊ້ທີ່ບໍ່ຖືກຕ້ອງແລ້ວສາມາດສ້າງຄວາມປອດໄພສໍາຄັນກວ່າ.
ດັ່ງນັ້ນຖ້າຫາກວ່າ register_globals ແມ່ນໄດ້ຫັນສຸດ, ກ່ອນທີ່ຈະດໍາເນີນການຂອງລະຫັດລາຍລັກອັກສອນໄດ້ເລີ່ມຕົ້ນປ່ຽນແປງທີ່ແຕກຕ່າງກັນທີ່ມີຄວາມຈໍາເປັນສໍາລັບການຍົກຕົວຢ່າງການສົ່ງ HTML, ຮູບແບບ. ດັ່ງນັ້ນ, ມັນໄດ້ຕັດສິນໃຈເພື່ອເຮັດໃຫ້ມັນອອກ.
ເປັນສະຖານະຂອງຄໍາສັ່ງນີ້ໃນຕົວແປທົ່ວໂລກ php ເປັນຫຍັງເປັນຫນີ້ຫລາຍ? ຄວາມຈິງແລ້ວແມ່ນວ່າໃນເວລາທີ່ສະຖານະຂອງພັດທະນາໄດ້ບໍ່ສະເຫມີໄປດ້ວຍຄວາມແນ່ນອນດ້ວຍຕົນເອງສາມາດຕອບຄໍາຖາມຂອງບ່ອນທີ່ມັນມາຈາກ. ຢູ່ໃນມືຫນຶ່ງ, ມັນເປັນງ່າຍຕໍ່ການຂຽນ code. ແຕ່ກ່ຽວກັບການອື່ນໆ - ມັນເປັນຄວາມສ່ຽງຄວາມປອດໄພ. ດັ່ງນັ້ນ, ເພື່ອຫຼີກເວັ້ນການຜິດພາດ, ເຊັ່ນດຽວກັນກັບຂໍ້ມູນປະປົນແລະຄໍາສັ່ງໄດ້ຮັບການພິການ.
ໃນປັດຈຸບັນໃຫ້ຂອງເບິ່ງບໍ່ / ລະຫັດຄວາມປອດໄພ, ເຊັ່ນດຽວກັນກັບວິທີການກວດສອບກໍລະນີທີ່ປະກາດຂອງຕົວປ່ຽນແປງ PHP ທົ່ວໂລກແມ່ນປະກອບດ້ວຍຄວາມພະຍາຍາມຢູ່ tampering ມີຂໍ້ມູນ. ນີ້ແມ່ນມີຄວາມຈໍາເປັນໃນຄໍາສັ່ງທີ່ຈະສ້າງບໍ່ພຽງແຕ່ງາມ, ແຕ່ຍັງຢ່າງຕໍ່ເນື່ອງສະຖານທີ່ທີ່ບໍ່ crack ບຸກຄົນສາມາດໃຊ້ໄດ້ຄັ້ງທໍາອິດທີ່ເຮັດວຽກ.
ລະຫັດເປັນອັນຕະລາຍ
ໃຫ້ຕັ້ງຄ່າຕົວແປທີ່ເປັນທີ່ແທ້ຈິງສໍາລັບຜູ້ທີ່ໄດ້ຮັບການອະນຸຍາດ:
ຖ້າຫາກວ່າ (authenticate_user ()) {
$ ອະນຸຍາດ = true
}
if ($ authors) {
ປະກອບດ້ວຍ "/highly/sensitive/data.php";
}
ໃນສະຖານະດັ່ງກ່າວນີ້, ຕົວແປສາມາດໄດ້ຮັບການກໍານົດອັດຕະໂນມັດ. ພິຈາລະນາວ່າຂໍ້ມູນທີ່ສາມາດພຽງແຕ່ໄດ້ຮັບການທົດແທນ, ແລະແຫລ່ງທີ່ມາຂອງຕົ້ນກໍາເນີດຂອງເຂົາເຈົ້າໄດ້ຖືກບໍ່ໄດ້ຕັ້ງແລ້ວມີໃຜສາມາດຜ່ານການທົດສອບແລະທໍາທ່າວ່າຈະມີຄົນອື່ນ. ຖ້າຫາກວ່າຕ້ອງການ, ການໂຈມຕີ (ຫຼືພຽງແຕ່ບຸກຄົນທີ່ຢາກຮູ້ຢາກເຫັນແຕ່ບໍ່ມີປະສົບ) ອາດຈະໄດ້ຮັບຄວາມບົກຜ່ອງດ້ານ, ມີເຫດຜົນຂອງພວກເຮົາ.
ຖ້າຫາກວ່າພວກເຮົາມີການປ່ຽນແປງມູນຄ່າຂອງຄໍາສັ່ງດັ່ງກ່າວ, ລະຫັດນີ້ຈະເຮັດວຽກຢ່າງຖືກຕ້ອງ, ດັ່ງທີ່ພວກເຮົາກໍານົດໄວ້. ແຕ່ການເລີ່ມຕົ້ນຂອງການປ່ຽນແປງແມ່ນບໍ່ພຽງແຕ່ນ້ໍາສຽງທີ່ດີໃນການດໍາເນີນໂຄງການ, ແຕ່ຍັງເຮັດໃຫ້ພວກເຮົາຮັບປະກັນທີ່ແນ່ນອນຂອງຄວາມຫມັ້ນຄົງຂອງ script ໄດ້.
ສະບັບພາສາທີ່ເຊື່ອຖືໄດ້ຂອງຂໍ້ກໍານົດ
ທ່ານສາມາດປິດການໃຊ້ງານຫຼືການເຮັດວຽກທາງຫລືກໍາຫນົດລະຫັດສະລັບສັບຊ້ອນຫຼາຍເພື່ອບັນລຸເປົ້າຫມາຍນີ້. ສໍາລັບຕົວຢ່າງເຊັ່ນ: ນີ້:
ຖ້າຫາກວ່າ (isset ($ _SESSION [ 'ຊື່ຜູ້ໃຊ້'])) {
echo "ສະບາຍດີ {$ _SESSION [ 'ຊື່ຜູ້ໃຊ້']} b>";
} ອື່ນ {
echo "ສະບາຍດີ ບຸກຄົນທົ່ວໄປ b>
";
echo "ຜູ້ໃຊ້ຍິນດີຕ້ອນຮັບ!";
}
ເຮັດໃຫ້ການທົດແທນໃນກໍລະນີນີ້, ຈະມີຄວາມຫຍຸ້ງຍາກ. ແຕ່ຍັງ -. ເປັນໄປໄດ້ ເພື່ອເຮັດສິ່ງນີ້, ທ່ານຈະຕ້ອງໃຊ້ເວລາດູແລທີ່ເຄື່ອງມືການຕອບສະຫນອງຢ່າງວ່ອງໄວໄດ້ຮັບການສະຫນອງໃຫ້. ຖ້າຫາກວ່າທ່ານຕ້ອງການທີ່ຈະປະກອບມີການປ່ຽນແປງໃນທົ່ວໂລກໃນ PHP, ທ່ານສາມາດນໍາໃຊ້ເຄື່ອງມືດັ່ງຕໍ່ໄປນີ້: ຖ້າຫາກວ່າພວກເຮົາຮູ້ວ່າສິ່ງທີ່ລະດັບແມ່ນມູນຄ່າທີ່ໄດ້ຮັບ, ມັນເປັນໄປໄດ້ທີ່ຈະລົງທະບຽນ script ການກວດສອບນີ້ມີການແຂ່ງຂັນ. ແນ່ນອນວ່າ, ມັນຍັງບໍ່ໄດ້ຮັບປະກັນການປ້ອງກັນຢ່າງເຕັມທີ່ກັບຄ່າທົດແທນ. ແຕ່ວ່າເປັນທາງເລືອກໃນການຫຼາຍເກີນໄປຢ່າງຫຼວງຫຼາຍ complicate.
ເຫັນວ່າຄວາມພະຍາຍາມທີ່ຈະ masquerade
ໃຫ້ຂອງເບິ່ງວ່າທ່ານບໍ່ເຂົ້າໃຈລາຍລັກອັກສອນກ່ອນ. ໃນ PHP ຕົວແປສ່ວນກາງໃນການທໍາງານທີ່ຈະໄດ້ຮັບການໃຫ້ຕ່ໍາກວ່າ, ທ່ານຈະຈໍາເປັນຕ້ອງໄດ້ປະກາດຕົນເອງ. ພວກເຮົາສາມາດເວົ້າວ່ານີ້ແມ່ນປະເພດຂອງບ້ານກ່ຽວກັບການນໍາເຂົ້າທຽບຂອງກະທູ້ບົດຮຽນໄດ້. ຕໍ່ໄປນີ້ແມ່ນລະຫັດທີ່:
Php
ຖ້າຫາກວ່າ (isset ($ _ COOKIE [ 'C_COOKIE'])) {
} elseif (isset ($ _ ຮັບ [ 'C_COOKIE']) || isset ($ _POST [ 'C_COOKIE'])) {
mail ( "administrarot@example.com", "ເອົາໃຈໃສ່, script ດັ່ງກ່າວໄດ້ບັນທຶກຄວາມພະຍາຍາມຢູ່ burglary ແລະການປອມແປງທີ່ມີຂໍ້ມູນ", $ _SERVER [ 'REMOTE_ADDR']);
echo "ມີຄວາມປອດໄພຫັກແມ່ນຄວາມພະຍາຍາມທີ່ຈະເຮັດແນວນັ້ນແຈ້ງ Administrator ໄດ້.";
ການທ່ອງທ່ຽວ;
} ອື່ນ {
}
?>
ໃນປັດຈຸບັນຄໍາອະທິບາຍ thereto. ສ່ວນຫນຶ່ງແມ່ນ C_COOKIE ມາເຖິງພວກເຮົາຈາກແຫຼ່ງທີ່ເຊື່ອຖືໄດ້. ເພື່ອຄວາມເພິ່ງພໍໃຈຢ່າງເຕັມສ່ວນຕາມຜົນທີ່ຄາດວ່າຈະ, ພວກເຮົາກວດສອບມູນຄ່າຂອງຕົນແລະແຈ້ງໃຫ້ເບິ່ງແຍງລະບົບໃນກໍລະນີຂອງບັນຫາ. ຖ້າຫາກວ່າມັນບໍ່ໄດ້ມາ, ຫຼັງຈາກນັ້ນການປະຕິບັດທີ່ບໍ່ມີແລະບໍ່ໄດ້ຈໍາເປັນຕ້ອງໄດ້ເຮັດໃຫ້. ທ່ານຕ້ອງເຂົ້າໃຈວ່າພຽງແຕ່ປິດການສັ່ງ register_globals ບໍ່ໄດ້ເຮັດໃຫ້ລະຫັດຂອງທ່ານແມ່ນປອດໄພ. ເພາະສະນັ້ນ, ຕົວປ່ຽນແປງທີ່ໄດ້ຮັບ script ຈາກຜູ້ໃຊ້, ຄວນໄດ້ຮັບການກວດກາສໍາລັບມູນຄ່າຄາດຄະເນໄວ້.
ສະຫຼຸບ
ທີ່ນີ້, ໂດຍທົ່ວໄປ, ແລະທຸກສິ່ງທຸກຢ່າງທີ່ທ່ານຈໍາເປັນຕ້ອງຮູ້ກ່ຽວກັບການປ່ຽນແປງໃນທົ່ວໂລກເພື່ອສົບຜົນສໍາເລັດແລະປອດໄພການນໍາໃຊ້ໃຫ້ເຂົາເຈົ້າໃນການເຮັດວຽກຂອງເຂົາເຈົ້າ. ແນ່ນອນວ່າ, ໃຫ້ເວົ້າວ່າບໍ່ແມ່ນການຄໍ້າປະກັນຢ່າງເຕັມທີ່ວ່າບໍ່ມີໃຜຈະນໍາໃຊ້ໃຫ້ເຂົາເຈົ້າບໍ່ສາມາດ - ການໂຈມຕີແມ່ນຢູ່ສະເຫມີການປັບປຸງວິທີການແລະຄວາມສາມາດຂອງເຂົາເຈົ້າ. ດັ່ງນັ້ນຈຶ່ງເປັນຄວາມປາຖະຫນາທີ່ຈະຈໍາກັດການນໍາໃຊ້ສູງສຸດຂອງຕົວປ່ຽນແປງຂອງໂລກໃນລະຫັດ. ໂຊກດີ, ໂຄງສ້າງແລະການອອກແບບຄຸນນະສົມບັດຂອງພາສາການຂຽນໂປຣແກຣມນີ້ສາມາດບັນລຸເປົ້າຫມາຍນີ້. ໂຊກດີ!
Similar articles
Trending Now