我正在创建一个到目前为止纯PHP的网站。我在想,因为很少有人没有启用JavaScript(我想知道为什么!)也许我应该创建我的网站作为一个完整的PHP网站,没有任何AJAX。我错了吗?
可以肯定的是,如果我实施一些AJAX会增加我的网站被破坏的风险吗?
我是否应该对此感到担心并开始使用AJAX?
答案 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的框架(取决于您使用的背景技术,如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并遵循安全编码惯例以最大限度地降低风险。总是建议由外部公司进行安全评估,以获取您错过的任何内容,尽管这可能很昂贵。