Безопасность скриптов, защита от инъекций, XSS (php, sql)
Добавлено: 20 окт 2013, 13:50
Не урок, но очень полезная заметка для начинающих. Может быть когда-нибудь дополню информацией.
Тему создал для того чтобы ссылаться на неё из других тем.
Когда писал уроки, думал не перенагружать их лишними проверками, но на деле мало кто из начинающих задумывается о безопасности и просто "лепит" что попало.
Важное правило: Проверяйте все данные, которые получаете от пользователя (_GET, _POST, _COOKIE, _SERVER и т.п.).
Ожидаете получить число - приводите к числовому типу (int).
Ожидаете получить строку и использовать её в sql-запросе - проверяйте, что строка не повлияет на запрос. Экранируйте кавычки, заменяйте спецсимволы и т.п.
Если выводите данные полученные от пользователя - убедитесь, что это не повлияет на верстку, экранируйте кавычки, заменяйте спецсимволы и т.п.
Думайте головой, пользователь может передать вашему скрипту совсем не то, что вы ожидаете.
Если вы не хотите чтобы ваш код был взломан, то гуглите и изучайте темы "безопасность php", "безопасность sql", "php sql инъекция", "php sql уезвимость", "xss" и т.п. Вместо php и sql подставляйте язык, на котором вы программируете.
Тема безопасности требует отдельного изучения. Информации в интернете полно.
Если кто-то хочет дополнить тему советами, то пишите прямо здесь.
Тему создал для того чтобы ссылаться на неё из других тем.
Когда писал уроки, думал не перенагружать их лишними проверками, но на деле мало кто из начинающих задумывается о безопасности и просто "лепит" что попало.
Важное правило: Проверяйте все данные, которые получаете от пользователя (_GET, _POST, _COOKIE, _SERVER и т.п.).
Ожидаете получить число - приводите к числовому типу (int).
Ожидаете получить строку и использовать её в sql-запросе - проверяйте, что строка не повлияет на запрос. Экранируйте кавычки, заменяйте спецсимволы и т.п.
Если выводите данные полученные от пользователя - убедитесь, что это не повлияет на верстку, экранируйте кавычки, заменяйте спецсимволы и т.п.
Думайте головой, пользователь может передать вашему скрипту совсем не то, что вы ожидаете.
Если вы не хотите чтобы ваш код был взломан, то гуглите и изучайте темы "безопасность php", "безопасность sql", "php sql инъекция", "php sql уезвимость", "xss" и т.п. Вместо php и sql подставляйте язык, на котором вы программируете.
Тема безопасности требует отдельного изучения. Информации в интернете полно.
Если кто-то хочет дополнить тему советами, то пишите прямо здесь.