php - 已通过 SQL 注入(inject)攻击的登录代码示例,尽管 mysql_real_escape_string...

标签 php codeigniter security sql-injection

我使用 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/

相关文章:

php - CodeIgniter 多文件上传不起作用

php - CodeIgniter根据值统计mysql记录的活跃记录数

javascript - 从 package-lock.json 获取库

由于 CSP 规则,Facebook 聊天插件无法加载

PHP Apple iOS 推送通知 : Command2 : Binary Interface and Notification Format

javascript - Ajax上传仅将第一个文件传递给php文件

php - WP Cron作业正在运行,但未执行全部功能

php - 从特定表中选择一个值,在另一个表上使用 `where` 子句

security - 应用程序如何安全地将 secret 存储在 Google Cloud Datastore 中?

php - MySQL多注册表备份与恢复