在经典asp中消毒输入的好方法

San*_*uys 7 security sanitization asp-classic

我必须在工作中更新旧项目.虽然我熟悉php脚本,但我对经典asp没有任何经验.

  • 我应该使用哪些功能?
  • 你能为我提供一些基本保护的好功能吗?
  • 在asp中有类似参数化查询的东西吗?

谢谢!

Flo*_*ory 9

桑德,

是的,您可以在经典ASP中使用参数化查询(更准确地说,是经典的ADO).

这是一个链接.

至于编码输出,我可能想要为最新的Microsoft Anti-XSS库创建一个包装器并使用Server.CreateObject调用它.我在这类事情上远非专家,因为我在.Net上花了更多的时间,所以我只觉得这会有用.

Server.HTMLEncode真的不够好,因为它只会将一些编码字符列入黑名单.Anti-XSS库更好,因为它将可接受的内容列入白名单.


Don*_*Don 7

始终使用Server.HTMLEncode来清理用户输入.

例如,如果您要从表单文本框设置变量:

firstName = Server.HTMLEncode(trim(request.form("firstname")))

  • 实际上你不应该使用HTMLEncode清理输入.这仅用于清理_output_.无法保证Web浏览器显示输入.您需要保护的唯一事情是SQL注入(例如,单引号char和分号).更好的是在查询参数中要求例如使用CLNG的int. (3认同)