Өнөөдөр нэг хүндхэн ажилтай тулгарав. Энэ нь нэг вэбийн програмыг шинэхэн суулгасан сервер дээр ажиллуулах. Хэдийгээр хялбархан сонсогдож байгаа ч яг үнэндээ тийм биш юм. Зөвхөн энэ програмыг ажиллуулахын тулд би мэдээллийн аюулгүй байдлын талаар баримтладаг зарим нэг зарчмаасaa ухарч, хэдэн ч тохиргоо өөрчлөв дөө. Шал утгагүй юм. Би энэ ажлыг үзэн ядаж байна, энэ кодыг бичсэн хүнийг ёстой хэлэх ч үг олдохгүй байна. Хэдийгээр би хийчихсэн ч надад таалагдахгүй байна, ийм байх ёсгүй.
Гарчигаа хэрхэн орчуулахаа мэдэхгүй байна гэхдээ тодорхой байдал нь таамаглахаас хавьгүй дээр гэсэн утга гарах болов уу. Хэрэв та үнэхээр сайн хөгжүүлэгч болохыг хүсч байвал хэзээ ч энэ нь ийм байх ёстой гэж таамаг дэвшүүл, зүгээр л шалга, бүгдийг тодорхой болго. Жишээ нь, миний сая ажилд оруулсан вэб маань PHP-ийн автоматаар session үүсгэдэг боломж нь нээлттэй байх ёстой гэж таамаглаад түүндээ хувьсагч хадгалж, тэгээд бас ашиглахыг оролдоно. Гэвч энэ боломж нь ихэвчлэн хаалттай байдаг болохоор ажиллахгүй. Үүнийхээ оронд хөгжүүлэгч нь боломж нээлттэй эсэхийг шалгах эсвэл бүр энэ боломжид найдалгүйгээр өөрөө session үүгээд явах боломж байсан. Бас болоогүй register_globals гэсэн тохиргоо идэвхитэй байна гэж найдсан байгаам. Найдах ч гэж дээ тодорхой боловч урт басхүү найдвартай код бичилгүй залхуурсан байх. Гэтэл энэ тохиргоог нээх нь аюулгүй байдлын хувьд асуудал үүсгэж мэднэ. Энэ мэт тоочоод байвал хэд хэдэн зүйл бий.
Дээрхийн адил таамаглалууд нь аюулгүй байдлын асуудлууд үүсгэдэг. Жишээ нь, нууц үгээ л хүн оруулах ёстой гэж таамаглаад түүнийгээ шалгалгүй SQL баазруугаа өгснөөс болж SQL Injection үүсдэг, бас зүгээр л текст байх ёстой гэж таагаад аваад дэлгэцэнд харуулах нь XSS үүсгэдэг. Юунд ч бүү найд, юуг ч бүү таа зүгээр л шалга. Нууц үг нь элдэв буруу тэмдэгт агуулсан эсэхийг шалгаад, хэрэв тийм бол битгий SQL рүү оруул. Шалгахдаа ахин дахин шалга. Манайхан javascript ашиглаад буруу тэмдэгт байгаа эсэхийг шалгаад цаад програмдаа шалгадаггүй. Буруу. Javascript-р дамжуулалгүй шууд утга дамжуулах хар мянган арга байгаа гэдгийг сана. Бүү таа, зүгээр шалга, нягтла, тодорхой болго. Нээрээ гарчиг маань python хэлний үндсэн зарчмуудын нэг юм шүү.
Нэмэлт: Манайхны гаргадаг нийтлэг алдаа нь өгөгдлийн сан руу холбогдох. Уг нь бол өгөгдлийн сангийн сервер руу холбогдоно, амжилттай болсон эсэхийг шалгана. Амжилттай бол өгөгдлийн сангаа сонгоно, амжилттай бол хүсэлтээ явуулж мэдээлэл авна, амжилттай бол мэдээллийг дэлгэцэнд гаргана. Гэтэл манайхан эдгээр шатуудад шалгалт хийгээгүйгээс бол холбогдохгүй, холбогдоогүй юм чинь өгөгдлийн сангаа сонгож чадахгүй, мэдээж дараа нь мэдээлэл авах гаргах нь алдаатай болж таарна. Энэ их түгээмэл тааралддаг алдаа.
Showing posts with label php. Show all posts
Showing posts with label php. Show all posts
2008-09-02
2008-08-16
PHP4-ийн төгсгөл
PHP төслийн багийнхан PHP4-ийн хамгийн сүүлийн хувилбар болох 4.4.9 дугаартай хувилбарыг гаргасан болохоо зарлалаа. Энэ хувилбар нь зарим нэг аюулгүй байдлын алдааг засч бас зарим нэг сайжруулалтыг агуулж байгаа юм байна. Харин үүнээс хойш илэрсэн ямар нэг аюулгүй байдлын цоорхой болон бусад төрлийн алдаанд ямар нэг засвар оруулахгүй бөгөөд үүнээс хойш зөвхөн PHP5-ыг дэмжиж, түүнийг ашиглахыг зөвлөж байна.
Хэрэв та серверийн админ бол тэгээд сервер дээр чинь PHP4 ажилладаг бол нэн даруй PHP5 руу шилжүүлэхийг зөвлөж байна. Харин та програмчин бол таны цагийн хэмнэж, боломжийг сайжруулсан бас илүү хурдан ажиллагаатай PHP5 хэлийг судалж, түүнийг ашиглахыг зөвлөж байна. Бас хуучин бичиж байсан програмуудаа PHP5 хувилбар руу шилжүүлэхийг санал болгож байна. Дажгүй сайн бичигдсэн кодууд ихэвчлэн засваргүй эсвэл багахан хэмжээний засвар хийгээд л ажиллаж байна гэсэн шүү.
Хэрэв та серверийн админ бол тэгээд сервер дээр чинь PHP4 ажилладаг бол нэн даруй PHP5 руу шилжүүлэхийг зөвлөж байна. Харин та програмчин бол таны цагийн хэмнэж, боломжийг сайжруулсан бас илүү хурдан ажиллагаатай PHP5 хэлийг судалж, түүнийг ашиглахыг зөвлөж байна. Бас хуучин бичиж байсан програмуудаа PHP5 хувилбар руу шилжүүлэхийг санал болгож байна. Дажгүй сайн бичигдсэн кодууд ихэвчлэн засваргүй эсвэл багахан хэмжээний засвар хийгээд л ажиллаж байна гэсэн шүү.
Subscribe to:
Posts (Atom)