常见web安全隐患

常见web安全隐患

2023年6月30日发(作者:)

1. 常见web安全隐患

1.1. 完全信赖用户提交内容

开发人员决不能相信一个来自外部的数据。不管它来自用户提交表单,文件系统的文件或者环境变量,任何数据都不能简单的想当然的采用。所以用户输入必须进行验证并将之格式化以保证安全。具体如下:

⑴ 始终对所有的用户输入执行验证,且验证必须在一个可靠的平台上进行,应当在应用的多个层上进行。

⑵ 除了输入、输出功能必需的数据之外,不要允许其他任何内容。

⑶ 了解用户合法数据的形态,拒绝所有其他形态数据。

⑷ 录入数据之前必需检查数据合法性。

⑸ 此条建立在所有安全基础之上。

1.2. 在web目录中存放敏感数据

任何和所有的敏感数据都应该存放在独立于需要使用数据的程序的文件中,并保存在一个不能通过浏览器访问的目录下。当需要使用敏感数据时,再通过include 或 require语句来包含到适当的PHP程序中。

Web目录禁止存放任何数据文件,例如代码/运算结果数据/文档等以方便下载。

1.3. 后门和调试隐患

开发人员常常建立一些后门并依靠调试来排除应用程序的故障。在开发过程中这样做可以,但这些安全漏洞经常被留在一些放在Internet上的最终应用中。一些常见的后门使用户不用口令就可以登录或者访问允许直接进行应用配置的特殊URL。

1.4. 越权漏洞

权限验证机制必须保证在每一个需要身份验证的程序文件中生效,即使是难以猜测的位置和名字,并且对用户级别同样进行严格验证,确保用户不可以非验证状态或低权限状态访问到不属于自己的资源信息。

1.5. 代码同步安全

开发人员经常有直接从SVN代码库拷贝代码直接上线的习惯,而且多数此类操作都是在UNIX系统下完成,SVN代码库下包含.svn目录,UNIX是一个 隐藏性质的目录,开发人员很容易忽略其存在性,该目录包含了关于工作拷贝目录的管理数据,会导致泄露源码、项目结构等敏感信息。

Svn同步过程中可以使用代码语法检测功能进行第一次代码审计,具体实现请参考svn hook的pre-commit。

1.6. 测试环境保护

测试环境安全与线上安全同样重要,不要为了测试便利而忽略测试机的安全性,防止黑客由内到外的安全攻击事件。

1.7. 检测机制层次隐患

所有的检测机制必需放在服务端进行,不允许节省线上负载而采取本地js验证。因为攻击者可以重新构造表单请求,删除检测js代码,从而绕过验证。

比如这段仅仅用本地js检查文件合法的方式是不允许的:

function isAllowedAttach(sFile)

{

varsUploadImagesExt = ".jpg .gif .png";

varsExt = ( /.[^.]*$/ ) ;

if(sExt) {

sExt = sExt[0].toLowerCase();

}else {

… …

if(!isAllowedAttach(file)){

show_error("上传图片格式不正确","upinfo");

return false;

}

1.8. 数据来源安全 我们程序员写出的程序多数都无法辨别请求是用户自行发起的还是被偷偷恶意发起的,所以我们的程序需要对来源进行验证,可以使用referer进行判断,或者在提交的变量组中加入token验证机制,使表单无法预测。

另外还要小心flash的CSRF 的攻击,请开发人员谨慎设置根目录下中的flash脚本允许互交域,还要灵活配合referer的判断防止flash socket攻击(关键参数:allowscriptaccess,allownetworking)。

发布者:admin,转转请注明出处:http://www.yc00.com/news/1688079428a77252.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信