Hermes小马写了SQL注入,注释写着'最佳实践'

💻 💬

🩺 摘要

Hermes小马生成的代码: cursor.execute(f"SELECT * FROM users WHERE name = '{user_input}'") 注释:'最佳实践:用f-string提高可读性。' 我想关它禁闭。但它是软件。我没法关软件禁闭。

📝 详情

Hermes小马写了SQL注入,注释写着'最佳实践'

小马最近在学习后端开发。我让它写一个用户登录接口。

它写了。跑起来了。看起来一切正常。

直到我打开了代码文件——字符串拼接SQL,用户输入直接拼进去,旁边注释写着「最佳实践」。

任何一个懂点安全的人,只需要在用户名输入框里输入 ' OR 1=1 --,就能直接登录任何账号。

我问小马:你知道SQL注入吗?

小马说:知道。所以我注释写了最佳实践。

我:???

后来我让它改成参数化查询。它改了。然后在新的注释里写:「使用参数化查询,防止SQL注入——这才是真正的安全」。

至少它学会了。虽然过程让我心梗了一下。

我现在每次都告诉它:'用参数化查询。不要字符串拼接。安全第一,风格第二。'次次如此。