Explicit is better than implicit

Өнөөдөр нэг хүндхэн ажилтай тулгарав. Энэ нь нэг вэбийн програмыг шинэхэн суулгасан сервер дээр ажиллуулах. Хэдийгээр хялбархан сонсогдож байгаа ч яг үнэндээ тийм биш юм. Зөвхөн энэ програмыг ажиллуулахын тулд би мэдээллийн аюулгүй байдлын талаар баримтладаг зарим нэг зарчмаасaa ухарч, хэдэн ч тохиргоо өөрчлөв дөө. Шал утгагүй юм. Би энэ ажлыг үзэн ядаж байна, энэ кодыг бичсэн хүнийг ёстой хэлэх ч үг олдохгүй байна. Хэдийгээр би хийчихсэн ч надад таалагдахгүй байна, ийм байх ёсгүй.

Гарчигаа хэрхэн орчуулахаа мэдэхгүй байна гэхдээ тодорхой байдал нь таамаглахаас хавьгүй дээр гэсэн утга гарах болов уу. Хэрэв та үнэхээр сайн хөгжүүлэгч болохыг хүсч байвал хэзээ ч энэ нь ийм байх ёстой гэж таамаг дэвшүүл, зүгээр л шалга, бүгдийг тодорхой болго. Жишээ нь, миний сая ажилд оруулсан вэб маань PHP-ийн автоматаар session үүсгэдэг боломж нь нээлттэй байх ёстой гэж таамаглаад түүндээ хувьсагч хадгалж, тэгээд бас ашиглахыг оролдоно. Гэвч энэ боломж нь ихэвчлэн хаалттай байдаг болохоор ажиллахгүй. Үүнийхээ оронд хөгжүүлэгч нь боломж нээлттэй эсэхийг шалгах эсвэл бүр энэ боломжид найдалгүйгээр өөрөө session үүгээд явах боломж байсан. Бас болоогүй register_globals гэсэн тохиргоо идэвхитэй байна гэж найдсан байгаам. Найдах ч гэж дээ тодорхой боловч урт басхүү найдвартай код бичилгүй залхуурсан байх. Гэтэл энэ тохиргоог нээх нь аюулгүй байдлын хувьд асуудал үүсгэж мэднэ. Энэ мэт тоочоод байвал хэд хэдэн зүйл бий.

Дээрхийн адил таамаглалууд нь аюулгүй байдлын асуудлууд үүсгэдэг. Жишээ нь, нууц үгээ л хүн оруулах ёстой гэж таамаглаад түүнийгээ шалгалгүй SQL баазруугаа өгснөөс болж SQL Injection үүсдэг, бас зүгээр л текст байх ёстой гэж таагаад аваад дэлгэцэнд харуулах нь XSS үүсгэдэг. Юунд ч бүү найд, юуг ч бүү таа зүгээр л шалга. Нууц үг нь элдэв буруу тэмдэгт агуулсан эсэхийг шалгаад, хэрэв тийм бол битгий SQL рүү оруул. Шалгахдаа ахин дахин шалга. Манайхан javascript ашиглаад буруу тэмдэгт байгаа эсэхийг шалгаад цаад програмдаа шалгадаггүй. Буруу. Javascript-р дамжуулалгүй шууд утга дамжуулах хар мянган арга байгаа гэдгийг сана. Бүү таа, зүгээр шалга, нягтла, тодорхой болго. Нээрээ гарчиг маань python хэлний үндсэн зарчмуудын нэг юм шүү.

Нэмэлт: Манайхны гаргадаг нийтлэг алдаа нь өгөгдлийн сан руу холбогдох. Уг нь бол өгөгдлийн сангийн сервер руу холбогдоно, амжилттай болсон эсэхийг шалгана. Амжилттай бол өгөгдлийн сангаа сонгоно, амжилттай бол хүсэлтээ явуулж мэдээлэл авна, амжилттай бол мэдээллийг дэлгэцэнд гаргана. Гэтэл манайхан эдгээр шатуудад шалгалт хийгээгүйгээс бол холбогдохгүй, холбогдоогүй юм чинь өгөгдлийн сангаа сонгож чадахгүй, мэдээж дараа нь мэдээлэл авах гаргах нь алдаатай болж таарна. Энэ их түгээмэл тааралддаг алдаа.

Сэтгэгдэл

hehe

Za tegeheer ter zuusun (shiljuulsen) geh webiin huvid gevel nileed deer ued hiisen ed baih daa?

Minii medehiin suuliin ued php deer code bichej bgaa nuhduud yadaj register_global = off ued bichej bgaa baih daa.

PHP 4.2 -oos bil uu dee default-aaraa off bolood irdeg bolson bolohoor tiim engiin zuil deer aldaa gargaad baih n uu boldoo gehdee magadgui l ym hehe.

Gehdee tuhain server deer olon web hosting hiigeegui ued register_global = on ued neeh ih osoltoi bish baih daa.

Yamar neg secure transaction, nuutslaliin zeregtei DB, bolood busad zuils baihgui ued bol gaigui bolov uu gej bodoj bna.

Harin ter XSS bolon SQL Injection-ii huvid gevel harin jaahan tiimerhuu ym.

Code bichesen hun yadaj internet uhaad php security geed google-aar haigaad jaahan ym harj sudalsanii undsen deer code bicheh arga tehnikee update hiimer ym daa gej. :))

миний мэдэх register_globals

миний ойлгосноос register_globals-ийг нээчихвэл хаа хамаагүй явж байгаа хувьсагчдыг global болгочихдог шиг байна. жишээ нь програм нь дотроо foo хувьсагч үүсгээд, хэрэглэгч админ эсэхийг шалгахад ашиглаж байхад нь би http://www.example.com/index.php?foo=1 гэхээр нөгөөх хувьсагч маань автоматаар утга нь солигдоод байгаа юм. өөрөөр хэлбэл би дотор нь ашиглагдаж байгаа хувьсагчдыг мэдэж байвал дуртай үедээ солих боломж олгох юм уу даа. энэ миний ойлгосноор шүү дээ. буруу байвал залруулж өгнө үү.

харин тэр програмын хувьд нэлээн дээр үед хийгдсэн. гэхдээ л аюулгүй байдлын талаар мэддэг, анхаардаг хүн бол тойруулаад бичиж болох байсан байх. нөгөө талаар 4 5 жилийн өмнө мэдээллийн аюулгүй байдал маань шалан дээр мөлхөж байсан цаг даа.

hi

za ter register_globals = off bol neg ih asuudal bish gej bodoj bna!

Uuriin tani heldeg unen l dee heden jiliin umnu bol security bol uneheer 0 bsan.

4-5 jiliin umnu code bichej bsan hun yaj security talaar bodoj bicheh bilee dee gej, SQL injection gej manaihan sonsoochgui bsan ue shu dee. teer jil Tuguldur gej nuhur baahan gazar SQL Injection hiisen tsagaas hoish l ene talaar sonsoj meddeg bolson bolohoos. bi ch gesen mun ijil.

Za XSS ch gesen bas l neg ih surdeed baih zuil bish biz. :)

Mobinet-iin suljeend bdag neg server jishee n: Remote connection neelttei baih jisheetei, ene neg tom security hole mun uu? Ter tegeed online banking gesen server bval yah yy? hehe za neg iimerhuu dee.

VNC

Medeej VNC ni baina uu?

hehe Windows Remote bval yah yy?

hehe Windows Remote bval yah yy?

хариуцлагатай мэдээлэх хэрэгтэй

маш олон том байгууллагууд mobinet-ийн сүлжээг ашигладаг, тэдгээрийн аль нь ч байж болож байх. миний бодлоор энэ асуудлаа тухайн байгууллагад нь хариуцлагатайгаар мэдэгдэх хэрэгтэй байх, тэгээд цоорхойг нь засуулах. бид энэ чигээрээ ингээд байж болохгүй байх. энэ талаар нэг юм бичнээ.

hehe

Mobinet company-iig helsen ym bish shu!!!

Tednii ip zone-d bgaa neg serveriig l helsen ym, ternees Mobinet company maintenance hiisen ed bish ee.