会话可以被伪造吗?

时间:2008-12-09 08:57:26

标签: session asp-classic sql-injection

我需要检查所有的asp代码以防止SQL注入。

我也应该检查会话对象吗?

会话如何被劫持?

谢谢!

4 个答案:

答案 0 :(得分:3)

为避免SQL注入,请使用参数化查询,而不是通过连接字符串来构建SQL查询。会话劫持是一个完全不同的主题。通过使用每个请求更改会话cookie可以使其变得更加困难,并且可以通过使用HTTPS完全避免。一个相关(和更大)的问题是跨站点请求伪造(查找)。

答案 1 :(得分:3)

会话可能被劫持。如果我没记错的话,Classic ASP仅支持基于cookie的会话标识符。如果有人能够窃取该cookie(窃听),那么他们可以获得与合法用户相同的会话。

你也应该查看会话对象吗?那要看。如果您可以确保会话中存储的所有对象都是“安全的”(输入已被清理),那么您可以跳过会话对象。如果您的应用程序中的某个位置从不安全的源获取数据并将其放在Session对象中,那么您也必须检查它。

答案 2 :(得分:1)

嗯,你真的需要保护用户输入。因此,您必须问自己的问题是:“这些数据是否来自用户输入?”如果是这样,你必须使用sql参数。

规模更大,并考虑到你有个别方法和要执行数据访问的类,您应该为您提供给sql的每个文本参数使用sql参数。在这种情况下,sql参数并不是必需的,因为如果你接收一个数字作为方法参数,那么它就无法进行sql注入。

但是,如果有疑问,请使用sql参数。

答案 3 :(得分:1)

会话变量存储在服务器的内存中。只有cookie ID存储在客户端上。没有必要担心会话中的变量,除非它们来自客户端。很多时候,检查传递给数据库的所有变量以进行sql注入会更容易。