gpt4 book ai didi

sql-server - SQL 注入(inject) : isn't replace ("' ", "' '") 足够好了吗?

转载 作者:行者123 更新时间:2023-12-02 09:05:04 27 4
gpt4 key购买 nike

虽然我当然可以看到在 SQL 查询中使用参数的优势,尤其是在处理日期时间和类似内容时,但我仍然不确定参数是否是防止 SQL 注入(inject)的唯一方法。
事实是,我继承了一个应用程序,它有类似的东西

"SELECT Field FROM Table WHERE Filter='"+userinput.Replace("'", "''")+"'"

到处都是。现在,虽然这些在我看来不太舒服,而且我不介意重写它们,但我的问题是,我需要吗?尽管我尽了最大的努力,但我找不到用它执行 SQL 注入(inject)的方法。

最佳答案

不,这还不够。它可以在紧要关头发挥作用,但它是一个非常弱的替代方案,如果您的平台和/或 RDBMS 支持任一功能,则使用参数化查询或参数化存储过程会更好。

来自

OWASP's SQL Injection Prevention Cheat Sheet

...this methodology is frail compared to using parameterized queries. This technique should only be used, with caution, to retrofit legacy code in a cost effective way.

下面还有更多

SQL injection — but why isn't escape quotes safe anymore?

Sql Injection Myths and Fallacies

SQL Injection after removing all single-quotes and dash-characters

关于sql-server - SQL 注入(inject) : isn't replace ("' ", "' '") 足够好了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8506574/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com