Это версия разделителя комментария строки в MySQL.В стандартном SQL разделитель комментария строки имеет вид --
.
-- This is a standard SQL comment.
# This is a MySQL comment.
Так что в контексте внедрения SQL, если злоумышленник знает, что вы используете MySQL, он может использовать его для внезапного завершения вредоносного оператора SQL., заставляя MySQL игнорировать все, что стоит за #
, и выполнять только то, что стоит перед ним.Однако это эффективно только для однострочных операторов SQL.Вот пример:
Вход:
Имя пользователя: fake' OR 1#
Пароль: pass
Результирующий SQL:
SELECT * FROM users WHERE username = 'fake' OR 1#' AND password = 'pass'
, который выполняется так, который возвращает каждую строку :
SELECT * FROM users WHERE username = 'fake' OR 1