ajax会增加还是降低安全性?

时间:2015-06-06 12:31:37

标签: javascript php ajax security

我正在创建一个到目前为止纯PHP的网站。我在想,因为很少有人没有启用JavaScript(我想知道为什么!)也许我应该创建我的网站作为一个完整的PHP网站,没有任何AJAX。我错了吗?

可以肯定的是,如果我实施一些AJAX会增加我的网站被破坏的风险吗?

我是否应该对此感到担心并开始使用AJAX?

3 个答案:

答案 0 :(得分:3)

Ajax本身并不安全或不安全。

然而,它确实打开了机会'对于不安全的代码。我经常看到的错误如下:

  • 在加载页面时,用户在代码隐藏中进行身份验证

  • 用户ID或其他凭据由JavaScript

  • 呈现并提取
  • 这些(完全未经身份验证的)凭据由Ajax通过线路发回,而不是服务器端检查。即使使用像Fiddler这样的简单工具,也很容易被攻击!

您必须对网站方法/网络API应用与网站其他位置相同的安全级别。如果你这样做,Ajax应该不比常规的更安全或更安全。网页。需要注意的事项包括:

  • 在您的网络服务或API中进行适当的身份验证和授权检查

  • 反 - SQL injection措施

  • HTTPS如果传输个人或敏感数据

Ajax makes websites more responsive并且在整个现代网络中无处不在。如果您希望大量访问者关闭JavaScript或者任何丢失的访问者不被您接受,并且您应该拥有,那么请注意安全性,并为未启用JS的访问者优雅地降级无所畏惧。

答案 1 :(得分:2)

AJAX本身不会增加或降低您网站的安全性,至少在其实施是否精细的情况下。客户端(浏览器)将打开或关闭JavaScript。如果它已打开,客户端侧可能会有更多不安全因素,这不会影响您的服务器,也不会影响您的网站。

然而,您当然应该安全地实现您的AJAX入口点(这是由AJAX请求访问的服务器端文件)。您应该记住的两个最重要的经验法则是:

  • 将每个用户输入(无论是否通过AJAX进入)视为潜在的“邪恶”,因此彻底验证并使用数据库转义,...不要仅依赖客户端验证!
  • 一个好的网站应该提供所有可以访问javascript的可能性,没有它。当然,这并不总是可行的,但至少应该尝试一下。

我建议使用支持AJAX的框架(取决于您使用的背景技术,如PHP,Java,Perl),这将使整个事情变得更加容易。此外,您应该搜索“保护AJAX应用程序”之类的内容,以获取有关该主题的更多详细信息。

答案 2 :(得分:1)

  

我正在创建一个到目前为止纯PHP的网站。我刚在想   因为很少有人没有启用JavaScript(我   想知道为什么!)也许我应该将我的网站创建为一个完整的PHP网站   没有任何AJAX。我错了吗?

我会说大多数人已启用JavaScript。 Probably 2% at most have it disabled according to this post from 2012

  

可以肯定的是,如果我实施一些AJAX会增加风险   我的网站被破坏了吗?

是的,技术上确实如此。更多代码=更多的错误机会,安全漏洞将成为这些错误的一部分。

您还将增加应用程序的攻击面,因为您通常会实现更多服务器端处理程序,以便异步执行用户操作。

客户端漏洞的可能性也更大,例如XSS(特别是DOM based XSS漏洞潜入的可能性更大)。

  

我是否应该对此感到担心并开始使用AJAX?

你应该"理所当然地关注"而不是担心。大多数站点都认为风险增加,甚至银行应用等高安全性系统也是如此。如果正确实施,您的网站可以保持"同样安全"因为它没有AJAX。

与基于网络的任何内容一样,请特别注意OWASP Top 10并遵循安全编码惯例以最大限度地降低风险。总是建议由外部公司进行安全评估,以获取您错过的任何内容,尽管这可能很昂贵。