【发布时间】:2013-07-29 13:27:23
【问题描述】:
VB.net 访问更新查询在更新查询错误中给出语法错误。我的查询如下:
query = "UPDATE users SET username='" & newUsername & "', password='" & newPassword & "', department='" & newDepartment & "', display_name='" & newDisplayName & "', email='" & newEmail & "', extension='" & newExtension & "', access_level='" & newAccessLevel & "' WHERE id=" & usrID
以上变量都没有任何符号。我做错了什么?
::更新::
UPDATE users SET username='alison', password='farm1234',department='1',display_name='Alison *****', email='production@**********.com', extension='1012',access_level='50' WHERE id=1
这就是查询的运行方式。
【问题讨论】:
-
您做错的第一件事是将自己暴露于 SQL 注入攻击...谷歌它...接下来您可能要做的就是实际运行该代码,然后准确地告诉我们变量查询...
-
我真的不担心 SQL 注入,因为这家公司只有大约 15 个人在我们的总部办公,没有人对此了解太多。我在其他时间使用准备好的语句进行 SELECT 查询,但这更快。此外,您需要先登录,它使用准备好的语句。更新见上文。
-
永远不要假设您知道系统将被谁使用。始终安全编码。您所需要的只是某个经理决定将其推广到更广泛的范围,然后您突然拥有了一个具有根本缺陷的关键任务软件包。哦 - 让他们通过参数化查询登录是没有防御的......您假设他们想要通过登录?如果只是想用其他人友好/愚蠢地登录的机器删除表怎么办......