GPT自动帮我审计有漏洞的代码,并给出修复后的完整代码,代码安全以后可以靠GPT了

admin 2024年3月9日16:00:29评论18 views字数 1022阅读3分24秒阅读模式

sql注入代码人工分析:

我们来看一下下面的这段的代码,是一段存在sql注入的代码块

主要存在问题的语句:

String sql = "select * from users where username = '" + username + "'";

这里直接使用了拼接的形式:

GPT自动帮我审计有漏洞的代码,并给出修复后的完整代码,代码安全以后可以靠GPT了

帮助我们翻译代码

那如果我们是一个代码初学者怎么办,我看不懂这段代码写的啥意思?

不要紧,用小浣熊插件,帮我们注释所有行代码:

1、选中你想要标注的代码

2、右键选择“Raccoon”-》“注释生成代码”

GPT自动帮我审计有漏洞的代码,并给出修复后的完整代码,代码安全以后可以靠GPT了

右侧小浣熊将每一行的注释都输出出来了。

GPT自动帮我审计有漏洞的代码,并给出修复后的完整代码,代码安全以后可以靠GPT了

自动审计及修复

同上一步类似,

1、选中你想要标注的代码

2、右键选择“Raccoon”-》“代码修正”

GPT自动帮我审计有漏洞的代码,并给出修复后的完整代码,代码安全以后可以靠GPT了

小浣熊插件会自动识别选中代码的问题,并给出修复后的代码,这里不仅仅会修复语法问题,也会修复安全类的问题,从代码上可以看到,对传递进来的username参数进行的预处理。

 // 修复SQL注入漏洞
PreparedStatement statement = con.prepareStatement("select * from users where username = ?");
statement.setString(1, username);
logger.info(statement.toString());
ResultSet rs = statement.executeQuery();

GPT自动帮我审计有漏洞的代码,并给出修复后的完整代码,代码安全以后可以靠GPT了

在最后还给出了修复内容:

将Statement更改为PreparedStatement。

使用PreparedStatement的setString方法设置参数,而不是直接将参数拼接到SQL查询语句中。

使用PreparedStatement的executeQuery方法执行查询,而不是Statement的executeQuery方法。

半自动化来了,自动化还会远么?

从这个案例可以看出来,一写ai的插件已经慢慢的开始继承到了开发工具中,安全前置已经慢慢的可以用工具自动化来完成了。

这个案例虽然是半自动化,需要人工找出存在漏洞危害的参数,但是插件可以帮我们通读全文代码,帮我们理解里面的含义,并能根据我们找出来的危害函数给出修复后的代码。

相信慢慢的我们的代码写完后,工具会自动化的帮助我们来进行审计,这样我们的bug会越来越少,每个人也都能使用工具进行coding了。大家的工作效率会不断的提升。

原文始发于微信公众号(吉祥在职场):GPT自动帮我审计有漏洞的代码,并给出修复后的完整代码,代码安全以后可以靠GPT了

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月9日16:00:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   GPT自动帮我审计有漏洞的代码,并给出修复后的完整代码,代码安全以后可以靠GPT了http://cn-sec.com/archives/2562461.html

发表评论

匿名网友 填写信息