Codeigniter Admin Логин взломан, хотя я использовал все вопросы безопасности - PullRequest
0 голосов
/ 04 мая 2010

как получился код перед взломом с помощью SQL-инъекции: (

$query = $this->db->query("SELECT * FROM users WHERE username = ? AND password = ?", array(mysql_real_escape_string($this->input->post('username')), mysql_real_escape_string(MD5($this->input->post('password')))));  

ценить помогает !!

Ответы [ 2 ]

2 голосов
/ 04 мая 2010

Вам не нужно использовать mysql_real_escape_string (), поскольку драйвер базы данных CodeIgniter сделает это за вас. Двойное экранирование строки может вызвать некоторые проблемы.

0 голосов
/ 18 июля 2010

Используйте это для более безопасных запросов:

    $query_username = $this->db->query("SELECT COUNT(username) AS count_username FROM users WHERE username=?", $this->input->post('username'));
$row_username = $query_username->row_array();
if ($row_username['count_username'] > 0) {
  $query_password = $this->db->query("SELECT password FROM users WHERE username=?", $this->input->post('username'));
  $row_password = $query_password->row_array();
  if ($row_password['password'] == MD5($this->input->post('password')) {
    // LOGIN SUCCESS 
  } else {
    // LOGIN FAILED
  }
} else {
  // LOGIN FAILED
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...