从自己网页引发的安全问题思考

之前写的简单版闯关网页,如果按照设计者思路引导目标按步骤进行,是可以正常实现基本功能,而从安全角度看,网页存在大量风险,引发我的思考。

1、我构建的请求模式是GET,而GET查询结果会体现在url上,如果使用POST会相对安全。

2、我写的网页没有设计数据库查询,跳转的条件我放在php文件中,如果不验证来源,修改一下文件名或者路径名其实就能无视之前的查询条件进行页面的跳转。

3、我在《sql攻击注入与防御》学习的过程中,第一章的1.4也提到,很多时候编程人员在构思的时候往往过于想的天真,认为用户会按照引导来输入或者操作,因此对于查询的内容或者操作可能只出现在前几个页面,那么只要知道下一个跳转页面,就可以绕过验证,或者发现新的注入点。

4、我注意到,往网站主页(80)端口查询了我放在8085端口的文件如xxx.php,它会提示文件可以下载,那么在我们说的xss里面就利用这种思路,一步一步引导人点击某些能下载的按钮,或者诱使目标输入查询条件,点击连接等,既可以把恶意脚本,文件或者代码改成用户容易上当的名字诱使目标下载,也可以隐藏以来在不知情的情况下触发下载。

5、那么对于查询,我只是限制了输入的数据长度,对于数据类型我是没有限制的,还有就是我对于可输入次数是没有限制的,因为本来就是用来互动。所以,一般编写程序也好网站也好,对于要输入的内容,我们应该要进行一些过滤或者限制,还有输入次数也要限制。因为什么都不做的话,攻击者可以尝试暴力破解,尝试一些诸如构造payload来达到绕过的手法等。

6、对于错误,我注意到当php文件存在诸如语法上的问题,结构或者数据的问题时,我的网站由于可以解析php文件,会给出错误提示,提示中包括了存放文件的一些敏感信息,比如绝对路径。这存在风险,因此对于错误页的处理,应该要更加合理。

二、后期方向

1、后期应该增加一些登陆界面,也会加入数据库的查询

2、使用cookie和session

3、对于一些存在的网络机器人,增加验证部分

4、增加功能点,对于上传和下载要有严格的筛选,过滤,用黑白名单的方式

5、其他


把原本的系统恢复之后,按道理首页的文件全部被删除,但是我用本机输入以前的地址还能看到以前的index文件,说明这是本地dns缓存没有刷新

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注