WEB开发网
开发学院软件开发Java Go-ForIt 记事:eXtreme DragonSlayers 专题报告,... 阅读

Go-ForIt 记事:eXtreme DragonSlayers 专题报告,第 6 部分: 有价值,却又让人烦恼的技术 — 数据确认和验证

 2009-11-06 00:00:00 来源:WEB开发网   
核心提示: 使用上面的脚本,如果用户向 firstName 域输入空值,Go-ForIt 记事:eXtreme DragonSlayers 专题报告,第 6 部分: 有价值,却又让人烦恼的技术 — 数据确认和验证(8),就会显示一个警告窗口, 而且,这条命令会将“Nothing”值放

使用上面的脚本,如果用户向 firstName 域输入空值,就会显示一个警告窗口。 而且,当按下 Submit 按钮时, checkForm 例程就会运行。这个例程检查表单中的一些域并整理错误,还通过返回 false 防止表单被提交。提交表单后消息或警告框中立即列出所有的错误,并使用域的 focus() 方法让用户返回到第一个要纠正错误不正确的域。

要考虑的问题

下面是我们在实现 GoFor-It.com 的客户端确认时面临的一些重要的问题。

无效数据

我认为这是客户端确认的最重要的问题。使用 JavaScript 时,即使您同时执行瞬时和批处理检查,仍有可能向服务器发送无效数据。即使大多数用户都不会这样做,但某个恶意的人却可以钻空子。用户可以用同一个表单创建一个新的 HTML 页面而不进行错误检查。如果服务器脚本不检查数据,要么数据库抛出异常,要么数据库安全会受到影响。

从理论上来说(因为我自己没做过),您可以通过比较作为 HTTP 请求的一部分发送的 HTTP 头信息来防止遭到黑客攻击。如果页面源不是您期望的,您可以拒绝并重新装入页面。但我们知道甚至这也可能遭到黑客攻击。表单和 onsubmit 函数的参数都可以在浏览器的地址栏被覆盖。例如,在我们的注册表单上,在浏览器地址栏我们运行下面的命令 javascript:document.forms[0].onsubmit=alert("hi") , 覆盖 onsubmit 函数的参数并允许您发送表单而无需进行任何确认。您还可以运行下面的命令,这条命令会将“Nothing”值放入名称域:
javascript:document.forms[0].firstName.value="Nothing"

浏览器不支持 JavaScript

尽管大多数浏览器都支持 JavaScript,但有些用户可能没有把它变为可用。 这个 developerWorks "Cranky User" 专栏中讨论了 JavaScript 的依赖性问题。

上一页  3 4 5 6 7 8 9 10  下一页

Tags:Go ForIt 记事

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接