2010-12-22 70 views
1

我一直在使用jQuery的$ .ajax/$。post来提交一些表单数据。我正在考虑在我的登录表单中使用此方法来创建电子商务网站。我的问题是通过AJAX post发送的数据有多安全?对我来说,至少似乎有人可能会看到一些细节,以帮助他们通过jQuery脚本自己去做令人讨厌的事情。我需要隐藏这些东西吗?还是我错了,这种发送数据的方法与其页面加载对应方一样安全(请记住,这两种方法都是通过256位安全连接)?AJAX提交表单的安全性?

+1

'不要假设'为了保持数据的完整性,确保你总是不信任任何d ata被后台收到。 – RabidFire 2010-12-22 08:46:36

回答

1

与从浏览器发送数据到服务器的其他方法相比,它没有那么安全。

有人能看到可能的一些细节,以帮助他们通过jQuery的脚本做坏事自己

给定一个规则的形状,有人可以添加自己喜欢的页面的任何脚本。

只记得build on things that work,你不希望销售失败,因为一块JS未能加载。

1

提交没有区别,两种方式都可能不安全。由服务器端来解决任何问题。

0

无论提交表单数据的方式如何,您都必须按照inaré的说明检查服务器端表单的安全性。 如果你想要一个概念proff在Firefox上使用'Live HTTP Headers',捕获你的POST查询并重播它,你可以改变每个发布的数据(并添加一个)。 在服务器端你shoudl申请2通安全对submited DATAS:

  • 过滤
  • 验证

过滤将确保传递给验证数据可能被重复使用(如在已设定值你的表单元素或错误消息中的句子,因此对于整数来说,一个简单的(int)强制转换将完成这项工作,但对于文本来说,你必须过滤XSS,HTML注入,js注入等。这可能是一件好事减少到最大的siez文本元素在这个过程中。 然后验证将确保发布表单元素包含有效值(正确的日期,正确范围内的int,有效的select元素等)。您可以重复使用POSTED值,该值现在被过滤以回显“-15不是有效数量”这样的好消息。

在Zend Framework Zend_Form中完成了一项很好的表单处理工作,概念可以重用。

0

无论在何处的数据来自的,你必须消毒,然后..仍然确保它看起来合理,你折腾到一些查询之前。

为ID的我用ctype_digit( )和strlen()在被过滤之后