Безопасность в PHP
Уже довольно долго ищу в интернете на эту тему, но в основном пишут статьи про иньекции и xss
Дайте, пожалуйста, ссылки на более полные статьи по безопасности php. Я пишу свою CMS, не хотелось бы чтобы ее взломали в первый же день после запуска сайта :-? |
пишите аккуратно, проверяйте переменные, используйте встроенные возможности экранирования переменных, в мускуль не суйте значения как это делают многие "`hehe`='$lala'" пишите так как требуется, не юзайте eval и тогда вас сложно будет сломать.
|
Принцип один: не доверяйте данным, пришедшим с клиента и будет Вам ЩАСТЬЕ!
Т.е. если ожидается число - intval, строка - хм... ну заслешить кавычки, убрать теги, потереть неожидаемые символы, к примеру $ & # Не делать eval в скриптах... Как-то так. |
Спасибо за советы! :)
Если с eval в php всё ясно, то почему многие не советуют использовать eval в javascript? Тут уж в любом случае ясно, какие данные придут в скрипт. Конечно если не допускать совсем очевидных ошибок и вставлять в eval вывод нефильтрованых данных от пользователя. Еще один совет вспомнил, напишу для тех, кому тоже интересна данная тема: лучше запретить всё и разрешить то что задумано разработчиком. Потому как чаще всего дыры бывают как раз таки из-за того, что разрешено пользователю слишком много. |
Цитата:
|
Что значит не использовать eval на сервере? Для пользовательских данных не использовать, для админских использовать.
Diego, твою цмс вряд ли кто то прям так ринется сразу ломать, только если ты очевидно не наплужил с тем же xss. PDO юзаешь? Насчет безопасности глянь тут. еще сразу что в голову пришло: 1) тексты пых скриптов пиши без завершающего ?> 2) csrf. 3) Пользовательские формы помечай маркером, что это форма сайта. 4) Прогугли про общую доступность файлов сессий на виртуальных хостингах, соответственно авторизацию продумай. |
Плюсую про PDO. Все запросы делать только с prepared statements'ами.
|
PDO не использую, никогда с ним не сталкивался. Посмотрел в вики, через это дополнение проходят все запросы в бд, то есть он автоматически фильтрует все входные данные?
Касательно авторизации - не использую сессии, ставлю две cookie, один с ID пользователя, второй со случайным набором символов, который меняется с каждой авторизацией. Эти символы привязываются к пользователю и его IP, то есть при краже куки злоумышленник всё равно не сможет зайти - его IP отличается от того, что записан в БД. Единственный минус - с изменением IP происходит разлогин, как можно этого избежать? Есть ли другие безопасные способы авторизации? PS:про этот способ узнал на хабрахабре: http://habrahabr.ru/post/13726/ |
Цитата:
Странная у тебя цмс, где ты сессии не используешь. :-? |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 22:17. |