gpt4 book ai didi

security - 经典 ASP SQL 注入(inject)保护

转载 作者:行者123 更新时间:2023-12-02 13:45:50 25 4
gpt4 key购买 nike

对于经典的 ASP 应用程序来说,防止 SQL 注入(inject)的有效方法是什么?

仅供引用,我将它与 Access 数据库一起使用。 (我没有编写应用程序)

最佳答案

存储过程和/或准备好的语句:

https://stackoverflow.com/questions/1973/what-is-the-best-way-to-avoid-sql-injection-attacks

Can I protect against SQL Injection by escaping single-quote and surrounding user input with single-quotes?

Catching SQL Injection and other Malicious Web Requests

使用 Access DB,您仍然可以做到这一点,但如果您已经担心 SQL 注入(inject),我认为您无论如何都需要摆脱 Access。

这是 Access 中该技术的链接:

http://www.asp101.com/samples/storedqueries.asp

请注意,通常防止注入(inject)的不是存储过程本身,而是它是参数化的而不是动态的。请记住,即使构建动态代码的 SP 如果以某种方式使用参数来构建动态代码,也可能容易受到注入(inject)攻击。总的来说,我更喜欢 SP,因为它们形成了应用程序 Access 数据库的接口(interface)层,因此应用程序甚至不允许首先执行任意代码。

此外,如果不使用命令和参数,例如,存储过程的执行点可能容易受到攻击。这仍然很容易受到攻击,因为它是动态构建的并且可以成为注入(inject)目标:

Conn.Execute("EXEC usp_ImOnlySafeIfYouCallMeRight '" + param1 + "', '" + param2 + "'") ;

请记住,您的数据库需要保卫自己的边界,并且如果各种登录都有权INSERT/UPDATE/DELETE在表中,这些应用程序(或受损的应用程序)中的任何代码都可能是潜在的问题。如果登录名仅有权执行存储过程,则这会形成一个漏斗,通过它您可以更轻松地确保正确的行为。 (类似于 OO 概念,其中对象负责其接口(interface)并且不公开其所有内部工作原理。)

关于security - 经典 ASP SQL 注入(inject)保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/149848/

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