为什么需要禁用get调用服务器? (禁用get调用服务器)
随着互联网技术的不断发展,Web 2.0时代的到来,Web应用程序的使用普及程度越来越高,而随之而来的数据安全问题也成为了越来越多开发者和用户关注的焦点。在Web应用程序的开发过程中,我们经常会使用 GET 和 POST 请求来获取和提交数据,但是在这两种请求方式中,GET 请求方式因为存安全性问题而被广大开发者避免使用。
GET 请求方式的工作原理是将请求的数据附在 URL 后面,向服务器请求数据。在 HTTP 协议中,GET 请求方式属于幂等性的请求方式,也就是说多次请求返回的结果是一样的,但是因为 GET 请求方式直接将数据暴露在 URL 上,可能会被网络嗅探器和黑客窃取或篡改,导致应用程序的数据安全受到威胁。比如,在浏览器中输入类似 http://www.example.com/?name=yourname&password=yourpassword 的网址,如果这个网址在公共的网络环境下被拦截,那么你的账户密码就会被轻易获取到。
另外,GET 请求方式也易受到缓存以及跨站脚本攻击(XSS)的攻击。当浏览器发出 GET 请求时,服务器会将请求的数据返回给浏览器,而如果使用的是缓存机制,那么就会将数据保存在浏览器中,当下次再次访问相同时,就会直接从缓存中取出数据,缓存将会给数据的保密性造成影响。而跨站脚本攻击,是指使用了不受信任的 JavaScript 代码将非法数据注入到合法的网页中,借此来窃取数据的一种攻击方式,而 GET 请求方式恰恰是容易受到此类攻击的。
对于以上所述的原因,许多程序开发人员倾向于使用 POST 请求方式来代替 GET 请求方式。POST 请求方式的工作原理是将请求的数据放在请求体中,而非 URL 中,这样在传输过程中数据不会泄漏。此外,POST 请求方式相对比 GET 请求方式更安全,因为POST请求方式具有一定的安全策略。例如,在FORM表单送信时,如果使用POST请求方式,当用户在表单中填入有不安全内容如带有HTML或javascript代码时(例如有些用户可能会介绍HTML代码或Javascript的链接,审核机制基于人工审核时有可能会忽略该风险),提交的时候会被自动过滤掉,所以 post 请求方式比较常使用在较为安全的操作中。
禁用 GET 请求方式的主要原因,是为了保障数据安全。我们要充分认识到网站“防火墙”的重要性,学习并掌握安全编程技术,把应用程序安全做到细节的处理,让应用程序健康发展。