Javascript ajax增加还是减少了安全性?
我正在创建一个网站,直到现在是纯PHP。我在想,既然很少有人没有启用JavaScript(我想知道为什么!),也许我应该创建一个完全没有AJAX的PHP网站。我想错了吗 可以肯定的是,如果我实现一些AJAX,会不会增加我的网站被破坏的风险Javascript ajax增加还是减少了安全性?,javascript,php,ajax,security,Javascript,Php,Ajax,Security,我正在创建一个网站,直到现在是纯PHP。我在想,既然很少有人没有启用JavaScript(我想知道为什么!),也许我应该创建一个完全没有AJAX的PHP网站。我想错了吗 可以肯定的是,如果我实现一些AJAX,会不会增加我的网站被破坏的风险 我是否应该担心这一点并开始使用AJAX?AJAX本身不会增加或降低站点的安全性,至少如果它的实现是精心设计的。客户端(浏览器)将打开或关闭JavaScript。如果打开它,客户端可能会有更多的不安全性,这不会影响服务器,因此也不会影响站点 尽管如此,您当然应该
我是否应该担心这一点并开始使用AJAX?AJAX本身不会增加或降低站点的安全性,至少如果它的实现是精心设计的。客户端(浏览器)将打开或关闭JavaScript。如果打开它,客户端可能会有更多的不安全性,这不会影响服务器,因此也不会影响站点 尽管如此,您当然应该安全地实现AJAX入口点(这是由AJAX请求访问的服务器端文件)。您应该记住两条最重要的经验法则:
- 将每个用户输入(无论是否通过AJAX输入)视为潜在的“邪恶”,因此彻底验证它并使用数据库转义。。。不要只依赖客户端验证李>
- 一个好的网站应该提供所有可能的访问与javascript启用也没有它。当然,这并不总是可能的,但至少应该尝试一下李>
我建议使用一个支持AJAX的框架(取决于您使用的是什么背景技术,如PHP、Java、Perl),这将使整个过程更加容易。此外,您可能还应该搜索“保护AJAX应用程序”之类的内容,以获取有关该主题的更详细信息。AJAX本身并不安全 然而,它确实为不安全的代码打开了“机会”。我经常看到的一个错误如下:
- 加载页面时,用户将通过代码隐藏进行身份验证
- 用户id或其他凭证由JavaScript呈现并提取
- 这些(完全未经验证的)凭证由Ajax通过网络发回,而不是在服务器端进行检查。非常容易被黑客攻击,即使是一个简单的工具,如
- 在web服务或API中进行适当的身份验证和授权检查
- 反措施
- 如果传输个人或敏感数据
与任何基于web的产品一样,请特别注意安全性,并遵循安全编码实践,以将风险降至最低。最好由外部公司进行安全评估,以找出您遗漏的任何内容,尽管这可能会很昂贵。使用ajax不会降低您的网站安全性,除非您做得不对,就像您可以在非ajax请求中提出安全问题一样。除非你确信大量的网站访问者不会启用js,否则我不会考虑没有js客户端。在这个时代,如果你禁用了javascript,大多数网站都不会工作。我没有统计数据,但我再也不把它当作软件开发人员来考虑了(除非你有强制遵守的规定或标准)。虽然这可能是正确的,但渐进式的改进仍然比忽略非JS用户要好得多。很少有理由实现完全依赖JS imo的特性。大多数事情都可以在没有JS imo的情况下完成(通常代码更优雅)。不要发疯,改变每一个链接和表单,让它们在纯HTML中毫无意义。使用PE构建确保它在任何地方都能工作,而优秀的SEO只是一种奖励。