HTTP请求是指从客户端到服务器端的请求消息,说白了就是我们用浏览器访问站点服务器时所发出的请求,是客户端与服务器端之间用来交互用的,判断一个网站有没有安全问题,就看在交互过程中存在不存在漏洞,当然一个没有任何交互的网站是没有安全问题的,但是交互是趋势,可以让用户有更好的上网体验,所以HTTP请求安全是最基本的网络安全。
GET和POST都是HTTP请求方法,除了这两个外还有HEAD方法、PUT方法、DELETE方法、CONNECT方法、OPTIONS方法、TRACE方法,为了安全考虑这些一般都被服务器所禁用了,最常用的就是GET和POST方法,那什么是GET和POST请求?
首先说说GET方法,GET方法是指请求指定的页面信息,并返回实体主体。我们点击网页上的每个链接都是一次或多次GET请求,例如:,就是GET请求,更直观的,我们使用抓包工具来抓取浏览器向服务器发送的请求包:
抓取的请求包
GET请求的内容一定可以在浏览器地址栏里看到,再说说POST请求,POST请求是指向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。最典型的POST请求就是用户在登陆时发送的请求,它的请求内容是在浏览器地址栏所看不到的,我们也可以通过抓包工具抓取POST请求:
POST请求
“member_name=&password=lht111111”就是POST请求内容,我们也可以在浏览器中按“F12”也可以找到POST请求内容。
浏览器F12
当我们构造出一些GET和POST请求,其中包含一些代码和语句,并且执行了,获得了一些服务器中不希望我们看到的信息,那么这个网站就是不安全的,比如:PHP代码和SQL语句,GET请求我们可以直接在浏览器中构造,POST请求我们可以通过抓包工具来构造并请求,也可以构造登录信息,从而不停尝试,直到成功为止,我们就会获得用户的登录信息,通俗地讲就是被盗号了,我们把这个过程叫做暴力破解。
因此我们需要禁止一些敏感请求方法的使用,对于无法禁止的,也要限制请求内容中的一些特殊字符,避免构成可执行的恶意代码或语句,更要限制每个用户的请求次数,防止暴力破解。
登录界面
一些大型的网站登录页面会设置一些限制,防止攻击者对登录请求数据包进行截取,从而无法构造登录请求,防止了暴力破解,但是一些小型的网站登录页面没有限制,就有可能破解你的登录信息,因此我们不要使用同一个账号或密码注册不同的网站用户,攻击者完全可以通过破解你小型网站账户和密码来登录你其他网站的用户,从而破一点而全面丧失。
网络安全,从良好的上网习惯开始。
没有网络安全,就没有国家安全!