我在我的数据库中注入了一个SQl注入,作为我的登录页面的测试。用户尝试正确插入正确的用户名和密码。但是,当用户无法输入正确的数据时,将被导入另一个Web表单以进行密码恢复。在密码恢复表单中,用户将获得显示的用户名(如果存在于数据库中)和电子邮件地址的少量字符作为提醒!然后,用户可以在文本框中确认完整的电子邮件地址,以将个人详细信息发送到该电子邮件 我尝试使用此测试注入我的SQL:
' or'a'='a
此代码已输入用户名字段和密码,经过一定的尝试后,我被导入密码恢复页面,我第一封电子邮件进入我的数据库,显示给我作为会员!这意味着这段代码使我能够访问我的数据库中的第一行。有什么方法可以阻止我的代码上的这种攻击,即加密我的SQl语句!
答案 0 :(得分:1)
使用存储过程或至少参数化查询,不要使用字符串连接。