我正在开发一个使用PHP作为服务器端的ERP系统。所以我需要非常小心我的网站/系统的安全性。我还将使用JavaScript进行客户端验证。所以我想确保客户端已启用JavaScript,当然我也将验证数据服务器端,但我不想要不必要的服务器调用,主要是我关注表单...以及客户端填写的数据并提交..那么我应该用什么来提交我的数据?
默认HTML使用JavaScript在此处提交和验证(注意:如果客户端关闭了JavaScript,则无用)
<input type="submit" name="Add Data" />
或者在JavaScript的帮助下使用锚标记<a>
提交(我发现这有意义,好像JavaScript已关闭,他无法提交数据)
<a href="#" onclick="document.getElementById("form_id").submit();">Submit</a>
如果我使用<a>
标记提交数据,或者我应该坚持使用默认的submit
按钮,那么有什么不好之处吗?如果我使用<a>
提交表单数据,那么我将能够使用JavaScript验证数据吗?
答案 0 :(得分:4)
所以我想确保客户端已启用JavaScript
你做不到。即使您设计的系统在没有JavaScript的情况下中断,也有人可以对其进行逆向工程并手动提交错误数据。
当然我也将验证数据服务器端
这是解决方案
但我不想要不必要的服务器调用
如果你因为关闭了JavaScript而导致重大性能或负担担心的人得到了足够的意外提交错误,我会吃掉我的帽子。
默认HTML使用JavaScript提交并验证
是。将JavaScript绑定到表单上的submit
事件。
<a href="#"
不要那样做。
如果我使用
,那么有什么不好吗?<a>
标签提交数据
我应该坚持使用默认的提交按钮吗?
是!
答案 1 :(得分:2)
尽可能使用浏览器默认值。坚持使用提交按钮,并将您的验证绑定到表单上的submit
事件。这样,无论是否使用JavaScript,您的表单都可以正常工作。
答案 2 :(得分:0)
不,您无法将客户端操作视为可靠或安全。如果我故意想要,我可以阻止验证,但保持JavaScript为提交工作。
至于你的问题,这很简单:你要么用户能够在没有JavaScript的情况下提交。这不是什么“更好”的问题,而是你的要求的问题。