我使用 CodeIgniter,在破解方面遇到了麻烦。是否可以对以下登录代码进行 SQL 注入(inject):
function process_login()
{
$username = mysql_real_escape_string($this->input->post('username'));
$password = mysql_real_escape_string(MD5($this->input->post('password')));
//Check user table
$query = $this->db->getwhere('users', array('username'=>$username, 'password'=>$password));
if ($query->num_rows() > 0)
{
// success login data
我是在使用 mysql_real_escape_string
错误还是什么?
最佳答案
没有发布的内容可能不会受到 sql 注入(inject)的攻击。尽管 getwhere() 可能在执行 stripslashes(),但我不确定。
如果存在 SQL 注入(inject),它很可能位于您应用程序的另一部分。攻击者可以利用此漏洞获取您的极弱 md5() 哈希,对其进行破解,然后登录。使用 sha2 家族的任何成员,sha-256 是一个不错的选择。
如果你的网站已经被篡改那么我严重怀疑是sql注入(inject)。很难自动利用 sql 注入(inject)来破坏网站,但这是可能的。我会确保所有库和已安装的应用程序都已完全更新。特别是如果您有 CMS 或论坛。你可以运行 OpenVAS扫描您的站点以查看是否找到任何旧软件。
关于php - 已通过 SQL 注入(inject)攻击的登录代码示例,尽管 mysql_real_escape_string...,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2540165/