【问题标题】:Security problem with form and javascript表单和 javascript 的安全问题
【发布时间】:2011-05-09 11:07:52
【问题描述】:
您好,我正在使用 HTML 和 javascript (jquery) 开发一个应用程序,HTML 有一个表单,该表单稍后会发送一封电子邮件,通过 get 方法传递数据。
电子邮件是由服务器上的 php 发送的,但在我验证表单的字段之前,我收到了邮件服务通知,邮件未公开-收件人:;并且所有字段都为空。我担心有人或某事试图获取信息。任何人都可以帮助解决这个问题。
注意如果您需要放置我的代码,我可以发布它,但我想知道有人如何将数据 null 传递给我的 php。
【问题讨论】:
标签:
javascript
jquery
html
security
【解决方案1】:
您不能仅依靠 javascript 进行验证,您必须验证服务器端。
您可能会收到来自机器人的访问。确保验证所有字段是否存在 AND 有效性,并使用 $_POST 而不是 $_GET。
确保$_GET 无法访问发送电子邮件的脚本,这意味着只需输入网址即可。如果我输入:
http://yoursite.com/contact?email=oops&sendmail=true
它应该无法发送电子邮件,这就是我说使用$_POST 的原因。但是,如果您正确验证,则无论您使用哪种方法,它都不应该向您发送空值。
【解决方案2】:
即使您使用 $_POST,如果没有服务器端验证,我认为这也没什么区别。没有服务器端验证,您仍然可以发布他/她想要的任何内容。
任何 Web 调试器都会显示您的页面发布到哪里以及发布到哪些字段。任何人都可以创建自己的页面以提交到您的服务器,并将字段设置为他们想要的值。
【解决方案3】:
根据所提供的信息,我不一定认为存在数据安全风险,但我确实看到垃圾邮件程序可能会利用您的网页并向您发送数以千计的垃圾邮件。