Малко въпроси за сигурността

metal_head

Registered
Здравейте, от няколко часа чета тук, във форумите и по разни други чуждестранни сайтове за Remember Me, с използване на бисквитки. Общо взето нищо неясно нямам относно как се прави запомняне, но намерих доста различна информация относно сигурността.

Първо чета някъде, че бисквитките не трябвало да съдържат паролата на потребителя в никакъв случай, на друго място в същото време гледам как се прави бисквитка с потребителското име и паролата...

Първият ми въпрос е: В моя сайт ще има опция за закупуване (с измислена валута на сайта ни ) на опция за сменяне на никнейма. Това означава, че ако някой си смени името ще трябва да му се преправя бисквитката. Мисълта ми е: Ами какво, ако направя само една единствена логин бисквитка, която да съдържа ID-то на потребителя? То си е константно. При логин, потребителя ще си въвежда името и паролата, ако е маркирал да го запомня в бисквитката ще се извлича ID-то му и при следващ вход в сайта, системата ще проверява бисквитката с ID-то.

Не съм сигурен обаче това добре ли е. Също не така и не разбрах как да си защитя бисквитките. Изобщо, някой може ли да ми препоръча нещо по въпроса?



Другото, което е, гледах една тема, в която спореха 3-ма относно това, дали сесиите могат да се крадат и накрая се оказа, че можело. Говореха за някаква защита с htmlspecialchars, но нещо не схванах съвсем какво представлява.

Молбата ми е някой да хвърли светлина по въпроса със сигурността при логина, ако може. Не искам потребителите ми да страдат от хакери :)
 
Ми като начало htmlspecialchars() е средство за защита срещу XSS атаки, но повече от половината ги пропуска. :)

Бисквитки могат да се крадат с XSS, но не и сесии. За сесиите си има session hjacking.
 
Ясно, а как тогава защитавам сесиите от hijacking или това не може да се защити? И бисквитките...предполагам те могат да се крадат без значение каква защита има, щото съм виждал такива софтуери, които крадат от публични мрежи, но ако не мога да ги защитя от кражба, то тогава каква информация е разумно да съдържа бисквитката ?

Аз четох доста за XSS атаките, но от нещата, които се обясняват не можах да добия цялостна картина как точно предотвратя тези кодове. Гледах за някакви разделяния на джаваскрипта с тагове, за да не може да се прочете и разни такива, обаче както казах, не ми стана много ясно. Има ли го някъде обяснено като за по-начинаещи?
 
Така, аз доколкото разбрах, бисквитките ми могат да съдържат всичко (но ако съдържат паролата, то е добре тя да е криптирана) и няма проблем. Проблемът идва от, както казахме XSS-а. Тоест инжектирането на скриптове в сайта. Въпросното инжектиране, долколкото разбрах става, като някой постне нещо в сайта (новина, ревю..пост във форум), което съдържа лош скрипт. Тоест аз трябва да не разрешавам постването на такива скриптове в сайта ми или да осуетявам появата им, така ли ? Аз единственото нещо, за което се сещам е да търся стринг в нещата, които потребителите постват, който да съдържа javascript и ако има такова нещо да се изтрива от поста или да се замества с *цветенца, птички*...нещо безопасно :D

И другото нещо, което е хубаво да направя е да показвам постовете с htmlspecialchars(), за да се превръщат символите в кодове за тях, само че това не вършело много работа, щото javascript е доста издръжлив и живее в доста критични за него условия (тоест въпреки това, може да бъде прочетен) :D

Правилно ли съм разбрал и правилен ли ще ми е подхода?
 

Back
Горе