sql - 当用户输入带有特殊字符的密码时如何防止 'DROP BOBBY TABLES'?

标签 sql asp-classic vbscript sql-injection owasp

在我们古老的经典 ASP 环境中,我们利用 OWASP 从请求对象中获取密码并对非字母数字字符进行加密。这是防止sql注入(inject)的第一道防线。我们使用其他方法来防止完整的 sql 注入(inject)。

问题是,当我们收集数据以组合 HTTP 发布消息并从用户输入中获取密码时,OWASP 将其发送出去。因此密码不正确。

示例:密码 freddie$cougar 变为 freddie&36;cougar

我们最终做的是假设一个 50 个字符的文本字段没有足够的空间来执行大量的 sql 注入(inject)并更改了代码,因此我们没有 OWASP 输入密码。这感觉有点吓人。

他们是更好的方法吗?

代码是用vbScript编写的。

最佳答案

更好的解决方案是将所有查询转换为参数化查询。

这里是 12 year old article explaining how :)

关于sql - 当用户输入带有特殊字符的密码时如何防止 'DROP BOBBY TABLES'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3637969/

相关文章:

mysql在表中选择唯一用户并根据列对其进行多次计数

sql - Oracle sql中 "%Type"是什么意思?

mysql - 动态分区 + 在 HIVE 上创建为

xml - 解析YouTube XML

IIS 6/COM+ 挂起

Excel VBScript 插入列并填充

SQL:内部联接根据条件返回一行

javascript - 允许单选按钮仅被选中一次以选择其唯一值

mysql - IIS 上的 ASP Classic 需要 31 秒来执行每个 mySQL 脚本

html - 在 HTA (VBS) 中动态更新表行