Я установил плагин на моем браузере firefox, который называется «SQL Inject Me», а затем я попробовал его на своем веб-сайте CakePHP. Я вижу, что он смог ввести несколько пустых учетных записей (некоторые с паролем), а некоторые - без пароля. База данных не допускается принимать значения, равные нулю для имени пользователя, электронной почты и т. Д. Также я не уверен, как он может обойти проверку кэша.проверка подлинности cakephp не выполняется при sql-инъекции
моего CakePHP проверка на поле имени пользователя
'username' => array(
'username must not be empty' => array(
'rule' => 'notEmpty',
'message' => 'username field cannot be empty'
),
'username must be unique' => array(
'rule' => 'isUnique',
'message' => 'username is already taken'
)
'username must not contain special character' => array(
'rule' => 'usernameValidation',
'message' => 'username can only contain numbers, characters, underscores, dashes and Periods. Underscore, dash and Period are only allowed in the middle.'
)
)
Итак, в чем вопрос? – ndm
Я бы не назвал это неудачным, так как это ожидаемое поведение, когда вы не требуете наличия полей при массовом ассимиляции/сохранении. Так что белее их, и этого не произойдет. См. [Здесь] (http://www.dereuromark.de/2010/09/21/saving-model-data-and-security/). – mark
@ndm, вопрос в том, как я его предотвращаю. очевидно, что я не хочу, чтобы люди вводили пустые учетные записи в мою базу данных. – user3741033