Mr.Li128 2022-12-23 15:04 采纳率: 12.5%
浏览 46
已结题

Fortify漏洞:Access Control: Database修复

Fortify漏洞:Access Control: Database修复

  • 写回答

3条回答 默认 最新

  • |__WhoAmI__| 2022-12-23 17:42
    关注

    可以使用 MyBatis 的参数映射机制来解决这个问题。例如在 SQL 语句中使用 #{} 来代替直接使用输入值,MyBatis 会自动对输入进行验证和过滤。

    如果 SQL 语句是这样的:

    SELECT * FROM users WHERE username = 'admin' AND password = '123456';
    

    可以将其改为这样:

    SELECT * FROM users WHERE username = #{username} AND password = #{password};
    

    这样MyBatis 会自动对 username 和 password 进行验证和过滤,从而避免 SQL 注入的风险。

    还可以使用 MyBatis 的动态 SQL 功能来解决这个问题。动态 SQL 允许使用、、等标签来动态生成 SQL 语句。这样就可以在 SQL 语句中使用动态的条件,而不是直接使用输入的值。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月28日
  • 创建了问题 12月23日

悬赏问题

  • ¥15 Qt4代码实现下面的界面
  • ¥15 prism提示我reinstall prism 如何解决
  • ¥15 asp.core 权限控制怎么做,需要控制到每个方法
  • ¥20 while循环中OLED显示中断中的数据不正确
  • ¥15 这个视频里的stm32f4代码是怎么写的
  • ¥15 JNA调用DLL报堆栈溢出错误(0xC00000FD)
  • ¥15 请教SGeMs软件的使用
  • ¥15 自己用vb.net编写了一个dll文件,如何只给授权的用户使用这个dll文件进行打包编译,未授权用户不能进行打包编译操作?
  • ¥50 深度学习运行代码直接中断
  • ¥20 需要完整的共散射点成像代码