where 1=1 不会导致sql注入吗?

来源:2-6 JDBC实战---搭建模型层 Ⅳ

qq_没什么_1

2016-09-30 15:27

where 1=1 不会导致sql注入吗?

写回答 关注

3回答

  • Airly
    2016-11-13 15:47:21

    对 于 JDBC而言, SQL注入 攻 击 只 对 Statement有效, 对 PreparedStatement 是无效的, 这 是因 为 PreparedStatement 不允 许 在不同的插入 时间 改 变查询 的 逻辑结 构。  
    如 验证 用 户 是否存在的 SQL语 句 为 :  
    select count(*) from usertable where name='用 户 名 ' and pswd='密 码 '
    如果在 用 户 名字段 中 输 入 ' or '1'='1' or '1'='1
    或是在 密 码 字段 中 输 入 1' or '1'='1
    将 绕过验证 ,但 这种 手段只 对 只 对 Statement有效, 对 PreparedStatement 无效。  
    PreparedStatement 相 对 Statement有以下 优 点:  
    1.防注入攻击  
    2.多次运行速度快  
    3.防止数据库缓冲区溢出  
    4.代 码 的可读性可维护性好

  • Airly
    2016-11-13 15:41:06

    这里不会产生SQL注入,这里的where 1=1永远成立,而你担心的SQL注入问题是where后面紧跟传入的参数或语句,而这里并没有授予传参的权利而是直接写死1=1。

  • qq_虫儿飞_4
    2016-09-30 23:29:00

    不会的


JDBC之 “ 对岸的女孩看过来”

一起领略JDBC的奥秘,为进一步学习集成框架打下良好的基础

99327 学习 · 856 问题

查看课程

相似问题