Êàê çàùèòèòü ñâîé ñàéò îò âçëîìà?
|
|
Ñóááîòà, 28 Ìàÿ 2011 ã. 00:57
+ â öèòàòíèê
Ðîìàí Êîáëåíö

Ñåãîäíÿ Èíòåðíåò çàâîåâûâàåò âñå áîëüøóþ è áîëüøóþ ïîïóëÿðíîñòü, è ñëîâî «ñàéò» ïðî÷íî âîøëî â íàø ëåêñèêîí.
Ïîñëåäíåå æå âðåìÿ çà ðó÷êó ñ ýòèì ñëîâîì ïîñòîÿííî õîäÿò åùå äâà – ýòî «ðàçðàáîòêà» è «ïðîäâèæåíèå». È ýòî íåóäèâèòåëüíî, âåäü ïîä ïðåññîì íåâåðîÿòíîãî êîëè÷åñòâà ðàçëè÷íûõ ïðåäëîæåíèé â îêàçàíèè óñëóã ïî ðàçðàáîòêå è ïðîäâèæåíèþ ñàéòîâ â ìîçãó ðÿäîâîãî ïîëüçîâàòåëÿ ýòè äâà ïîíÿòèÿ óêîðåíèëèñü êàê åäèíñòâåííûå çàñëóæèâàþùèå âíèìàíèÿ ïðè çàïóñêå èíòåðíåò-ïðîåêòà.
Íî åñòü åùå îäíî ñëîâî, áåç êîòîðîãî íè ñîçäàíèå, íè ïðîäâèæåíèå, íè÷òî âîîáùå íå áóäåò èìåòü ñìûñëà, åñëè âû ñîçäàåòå ñåðüåçíûé ïðîåêò. Áîëåå òîãî, åñëè âû áóäåòå ïðåíåáðåãàòü ýòèì ñëîâîì, âàøè äåëà ìîãóò îêàçàòüñÿ íàìíîãî õóæå, ÷åì ýòî áûëî ðàíüøå.
Ðå÷ü èäåò î áåçîïàñíîñòè, ïðè÷åì íå î ôèçè÷åñêîé áåçîïàñíîñòè êîìïüþòåðà, íà êîòîðîì õðàíèòñÿ âàø ñàéò, î êîòîðîé, êîíå÷íî, òîæå ñòîèò ïîçàáîòèòüñÿ, à î áåçîïàñíîñòè â ñåòè Èíòåðíåò.
Ñëîæíî ïåðåîöåíèòü âàæíîñòü âîïðîñîâ áåçîïàñíîñòè âàøåãî ñàéòà, åñëè â åãî áàçå äàííûõ õðàíÿòñÿ âàæíûå ñâåäåíèÿ. Òàê, íàïðèìåð, ñëîæíî ñåáå ïðåäñòàâèòü, ÷òî ðóêîâîäèòåëü ÈÒ-îòäåëà â êàêîì-ëèáî êðóïíîì áàíêå, â áàçå äàííûõ êîòîðîãî õðàíÿòñÿ íîìåðà êðåäèòíûõ êàðò åãî êëèåíòîâ è ïðî÷àÿ âàæíàÿ èíôîðìàöèÿ, ñìîæåò ñïîêîéíî ñïàòü íî÷üþ, åñëè åìó íàêàíóíå ñîîáùèòü, ÷òî ñàéò áàíêà, çà êîòîðûé òîò íåñåò îòâåòñòâåííîñòü, íå çàùèùåí äîëæíûì îáðàçîì è ìîæåò áûòü âçëîìàí â òå÷åíèå ÷àñà ìàëî-ìàëüñêè ñìûøëåíûì âçëîìùèêîì.
À âåäü çà÷àñòóþ âñå èìåííî òàê! Áîëåå òîãî, äàæå çàùèùåííûé ñïåöèàëüíûìè ôóíêöèÿìè êîä ñàéòà, îãðàíè÷åííàÿ ðàçðåøåíèÿìè íà äîñòóï ê èíôîðìàöèè áàçà äàííûõ è ñîòðóäíèê, îòâå÷àþùèé çà áåçîïàñíîñòü âàøèõ äàííûõ ñ âûñîêèì îêëàäîì íå âñåãäà ñìîãóò ãàðàíòèðîâàòü âàì ñòîïðîöåíòíóþ çàùèòó. Èìåííî ïîýòîìó, ÷òîáû ïîòîì íå áûëî ìó÷èòåëüíî áîëüíî, íåîáõîäèìî êðàéíå òùàòåëüíî îðãàíèçîâûâàòü ñèñòåìó çàùèòû äàííûõ.
 äàííîé ñòàòüå ÿ çàòðîíó òåìó çàùèòû îò, âîçìîæíî, ñàìîãî ðàñïðîñòðàíåííîãî ìåòîäà âçëîìà ñàéòà – SQL-èíúåêöèè. Äëÿ íà÷àëà îïðåäåëèìñÿ ñ òåì, ÷òî âñå áåç èñêëþ÷åíèÿ ñîâðåìåííûå îáúåìíûå, ñëîæíûå ñàéòû ñòðîÿòñÿ íà îñíîâå áàçû äàííûõ.
Ðàáîòà ñ äàííûìè, õðàíÿùèìèñÿ â áàçå äàííûõ âàøåãî ñàéòà, îñóùåñòâëÿåòñÿ ïîñðåäñòâîì ñòðóêòóðíîãî ÿçûêà çàïðîñîâ SQL. SQL-èíúåêöèÿ – òåõíèêà âíåäðåíèÿ â èñõîäíûé SQL-çàïðîñ îïðåäåëåííîãî êîäà, íå íàðóøàþùåãî ñòðóêòóðû ñàìîãî çàïðîñà, ñ öåëüþ ïîëó÷åíèÿ äîñòóïà ê äàííûì, ñîäåðæàùèìñÿ â ÁÄ.
Âîçìîæíîñòü âíåäðåíèÿ SQL-èíúåêöèè âîçíèêàåò âñëåäñòâèå íåäîñòàòî÷íîé ïðîâåðêè ïðèíÿòûõ îò ïîëüçîâàòåëÿ çíà÷åíèé. Âíåäðåíèå SQL-èíúåêöèè, â çàâèñèìîñòè îò òèïà èñïîëüçóåìîé ÑÓÁÄ è óñëîâèé âíåäðåíèÿ, ìîæåò äàòü âîçìîæíîñòü àòàêóþùåìó âûïîëíèòü ïðîèçâîëüíûé çàïðîñ ê áàçå äàííûõ – íàïðèìåð, ïðî÷èòàòü ñîäåðæèìîå ëþáûõ òàáëèö, óäàëèòü, èçìåíèòü èëè äîáàâèòü äàííûå, ïîëó÷èòü âîçìîæíîñòü ÷òåíèÿ è/èëè çàïèñè ëîêàëüíûõ ôàéëîâ è âûïîëíåíèÿ ïðîèçâîëüíûõ êîìàíä íà àòàêóåìîì ñåðâåðå.
Áîëüøèíñòâî SQL-èíúåêöèé ïðèìåíÿåòñÿ â ôîðìàõ ââîäà, òàêèõ êàê ðåãèñòðàöèÿ ïîëüçîâàòåëÿ, ïîäïèñêà, çàêàç òîâàðà è ò.ä. Íî íå ñòîèò çàáëóæäàòüñÿ íàñ÷åò òîãî, ÷òî ðå÷ü èäåò òîëüêî îá âèäèìûõ ôîðìàõ ââîäà. Î÷åíü ÷àñòî äëÿ ïðîíèêíîâåíèÿ êîäà SQL-èíúåêöèè èñïîëüçóåòñÿ URL ñàéòà. Òàêèì îáðàçîì, åñëè âàø ñàéò íèêàê íå çàùèùåí îò ïðîíèêíîâåíèÿ, âçëîìùèê áåç òðóäà ñìîæåò ïîäîáðàòü êëþ÷è ê âàøåé áàçå äàííûõ è ïîëó÷èòü ëþáóþ èíôîðìàöèþ, êîòîðàÿ â íåé õðàíèòñÿ.
Èòàê, ïåðåéäåì íåïîñðåäñòâåííî ê ìåòîäàì çàùèòû âàøåãî ñàéòà îò SQL-èíúåêöèè:
1. Íå äîâåðÿéòå äàííûì, êîòîðûå ââîäèò ïîëüçîâàòåëü â ôîðìó íà âàøåì ñàéòå. Âñå ýòè äàííûå íåîáõîäèìî ïðîâåðÿòü íà íàëè÷èå â íèõ âðåäîíîñíîãî êîäà. Äëÿ ýòîãî, âî-ïåðâûõ, ñòîèò îãðàíè÷èâàòü äëèíó ïîëåé òàì, ãäå ýòî âîçìîæíî. Íàïðèìåð, äëÿ ñòðîêè «Èìÿ» âïîëíå õâàòèò 10 ñèìâîëîâ.
Îáðàáàòûâàéòå ñïåöèàëüíûìè ôóíêöèÿìè âñå äàííûå, ïîëó÷àåìûå îò ïîëüçîâàòåëÿ. Ïðè èñïîëüçîâàíèè PHP çäåñü ïîäîéäóò ôóíêöèè mysql_real_escape_string() (ýêðàíèðóåò ñëåøàìè çàïðåùåííûå ñèìâîëû òèïà ‘, ”), Htmlspecialchars() (ïðåîáðàçóåò çàïðåùåííûå html äåñêðèïòîðû). Òàêæå çäåñü ìîæíî ïðîâåðÿòü òèï ââîäèìûõ çíà÷åíèé, íàïðèìåð, ñ ïîìîùüþ intval() äëÿ ÷èñëåííûõ çíà÷åíèé.
2. Îãðàíè÷èâàéòå ïîëüçîâàòåëåé â ïðàâàõ íà äîñòóï ê áàçå äàííûõ. ×åì ìåíüøå ïðàâ áóäåò ó ïîëüçîâàòåëÿ, òåì ìåíüøå âðåäà áóäåò â ñëó÷àå âíåäðåíèÿ SQL-èíúåêöèè.
3. Ïðèíöèï âíåäðåíèÿ SQL-èíúåêöèè çàêëþ÷àåòñÿ â òîì, ÷òî âçëîìùèê óãàäûâàåò ñòðóêòóðó âàøèõ çàïðîñîâ ê ÁÄ, ïîäáèðàåò âîçìîæíûå èìåíà òàáëèö è ñòîëáöîâ ýòîé áàçû è íà îñíîâå ïîëó÷åííîé èíôîðìàöèè èçâëåêàåò äàííûå. Òàê, íàïðèìåð, ïûòàÿñü ïîëó÷èòü äîñòóï ê òàáëèöå ïàðîëåé âàøåé áàçû äàííûõ, îí áóäåò ïîäáèðàòü èìåíà òèïà pass, password, users è ò.ä. Ïîýòîìó, âðÿä ëè åìó óäàñòñÿ èçâëå÷ü èç äàííîé òàáëèöû èíôîðìàöèþ, åñëè âû íàçîâåòå åå «aslfjsaf». Îäíàêî äàííûé ìåòîä ÷åðåñ÷óð ðàäèêàëüíûé, òàê êàê çàòðóäíèò ðàáîòó ñ ÁÄ ëè÷íî âàì – èç-çà íåèíôîðìàòèâíîñòè èìåí.
Ðàññìîòðåííûå â äàííîé ñòàòüå ìåòîäû çàùèòû ïîìîãóò âàì îáåçîïàñèòü ñâîé ñàéò îò âçëîìùèêîâ, îäíàêî â óñëîâèÿõ ðåàëüíîãî ïðîåêòà íè â êîåì ñëó÷àå íå ñòîèò èìè îãðàíè÷èâàòüñÿ, òàê êàê ýòà ñòàòüÿ èìååò ëèøü îçíàêîìèòåëüíûé õàðàêòåð è íå ìîæåò ðàññêàçàòü îáî âñåõ ñïîñîáàõ è ìåòîäàõ çàùèòû äàííûõ.
Ãëàâíîå, ÷òî âàì íåîáõîäèìî ïîíÿòü, – ýòî âàæíîñòü âîïðîñîâ áåçîïàñíîñòè âàøåãî ñàéòà, î ýòîì íè â êîåì ñëó÷àå íåëüçÿ çàáûâàòü. Äîâåðÿéòå çàùèòó âàøåãî ñàéòà ïðîôåññèîíàëàì è ñïèòå ñïîêîéíî!
Ìåòêè:
ïîëåçíûå ñîâåòû
îáçîðû èíòåðíåò
Ïðîöèòèðîâàíî 16 ðàç
Ïîíðàâèëîñü: 2 ïîëüçîâàòåëÿì
-
2
Çàïèñü ïîíðàâèëàñü
-
16
Ïðîöèòèðîâàëè
-
1
Ñîõðàíèëè
-