关于安全检测工具扫描项目程序出现安全漏洞的问题?
客户公司用测评软件测评了我们的项目,发现几个安全漏洞,sql注入和xss攻击的,我看了出现安全漏洞的服务端程序代码,发现基本上都是页面向服务端发送get或者post数据的地方出现的漏洞,后端接收数据用的是CI框架自带的input类,可以过滤用户输入的信息,而且CI的csrf
配置项也已经开启
测试工具:
漏洞概况:
有几个头疼的地方:
原先接收
get
和post
数据的代码是这样写的$this->input->get('section_id)
,项目中的其他地方都是这样接收的,按理说是已经做了过滤和安全防范的,为什么还会出现这样的漏洞?如果服务端接收
get、post
数据这里出了问题,那理应项目中所有采用这种方式的地方全都应该有漏洞才对,为什么只有极个别地方出现了这样的漏洞?客户只看检测数据,我该如何向他们解释和沟通?
求指教~
回复内容:
客户公司用测评软件测评了我们的项目,发现几个安全漏洞,sql注入和xss攻击的,我看了出现安全漏洞的服务端程序代码,发现基本上都是页面向服务端发送get或者post数据的地方出现的漏洞,后端接收数据用的是CI框架自带的input类,可以过滤用户输入的信息,而且CI的csrf
配置项也已经开启
测试工具:
漏洞概况:
有几个头疼的地方:
原先接收
get
和post
数据的代码是这样写的$this->input->get('section_id)
,项目中的其他地方都是这样接收的,按理说是已经做了过滤和安全防范的,为什么还会出现这样的漏洞?如果服务端接收
get、post
数据这里出了问题,那理应项目中所有采用这种方式的地方全都应该有漏洞才对,为什么只有极个别地方出现了这样的漏洞?客户只看检测数据,我该如何向他们解释和沟通?
求指教~
1 这种测试软件的判断不一定准确,一般他只判断 片接不同的语句返还的结果的字符长度是否相同来判断是否存在注入
2 不要太相信什么框架不框架,安全这一块要自己做全局过滤
3 他这里检测的xss 都不是存储型的,危险度没那么高。像这种最多被用作跳板
4 客户要的只是报告上没有漏洞的心里安慰而已。
5 如果你只是想让他扫描不到漏洞。在程序入口写入日志文件,记录所有请求以及参数,来分析这个扫描软件是如何来判断是否存在漏洞的。
6 修改扫描软件的报告上的漏洞,个人经验 这个应该是你传递的参数没有intval
7 关闭mysql 错误提示,防止报错注入
防范
1 在程序加入全局sql关键字过滤
2 开启PHP单引号转义(修改php.ini magic_quotes_gpc)。
3 apache/nginx/iis开启服务日志,mysql慢查询日志,程序入口记录请求日志
4 服务器安装安全狗等web应用安全软件
5 数据库链接方式使用UTF-8 防止gbk双字节注入
6 增强mysql密码的复杂度,禁止mysql外链,更改默认端口号
7 给程序mysql账号做降权,只给普通的增删查改权限。禁止给文件操作权限
XSS跨站攻击 解决方案
1 有文本写入的地方运用htmlspecialchars 转义
2 利用SSL禁止加载引用外部js
3 设置httponly 禁止获取cookie
4 已上是确保没有注入的情况下(如果存在注入,是可以利用16进制绕过htmlspecialchars 达到xss攻击的效果)
5 后台和前台最好使用2套路由规则不一样的程序,后台关键操作(备份数据库)应该设置二级密码,和增加请求参数的复杂度,防止CSRF
PHP 安全
1 上传文件的地方增加后缀过滤,过滤时不要做“逻辑非”判断。
2 禁止上传后缀php,htaccess的文件,不要使用客户端提交过来的数据获取文件名后缀,应该用程序做添加后缀以及随机文件名
3 统一路由,限制越权访问。webroot目录对外防问的只能有一个index.php(入口文件),其它所有目录,禁止外部防问,所有 资源(上传)文件,在nginx 加上防盗链功能
4 PHP降权处理,web目录限制创建文件夹和文本(程序所需要的文件夹除外,一般都会有个缓存目录需要可写权限)
5 对IIS/nginx 文件解析漏洞利用做过滤
6 找回密码使用手机验证码找回,邮箱找回应该用额外的服务器。(防止通过找回密码的功能得到真实ip)。最后发送给用户邮箱的重置密码的链接需要有个复杂的加密参数
7 用户登录系统应该做单一登录功能,如果用户已登录,其他人再次登录是应该给与提示。
8
1 安全常识
1 web应用使用站库分离,更改环境web目录的默认路径
2 当使用集成环境时,安装完成后应该删掉php探针,以及phpmyadmin,phpinfo(探针可以查看你的web路径,phpmyadmin可以暴力破解)
2 用户密码最好采用 密码加盐 之后的md5值
3 用户登陆的地方增加验证码,怎加错误次数限制,防止暴力破解
4 使用cdn加速隐藏真实ip
5 用户登陆的时候,不要传递明文账号密码,防止C端嗅探,通过ARP欺骗获取用户以及管理员明文账号密码
6 禁用php系统命令行数exec,system 等
7 服务器上装安全狗等安全防护软件
8 web目录 禁止存放.rar,zip文件
我对RSAS和BVS了解来说,你这个问题不修复一直会扫描到,而最根本的办法就是解决掉这些问题,自己去发现漏洞,客户担心可能不是别人攻击他,而是内部人利用漏洞做后门程序,有些客户极少的留有解释的余地。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

IIS和PHP可以兼容,通过FastCGI实现。1.IIS通过配置文件将.php文件请求转发给FastCGI模块。2.FastCGI模块启动PHP进程处理请求,提高性能和稳定性。3.实际应用中需注意配置细节、错误调试和性能优化。

1)c relevantduetoItsAverity and效率和效果临界。2)theLanguageIsconTinuellyUped,withc 20introducingFeaturesFeaturesLikeTuresLikeSlikeModeLeslikeMeSandIntIneStoImproutiMimproutimprouteverusabilityandperformance.3)

C 的未来将专注于并行计算、安全性、模块化和AI/机器学习领域:1)并行计算将通过协程等特性得到增强;2)安全性将通过更严格的类型检查和内存管理机制提升;3)模块化将简化代码组织和编译;4)AI和机器学习将促使C 适应新需求,如数值计算和GPU编程支持。

Java的平台独立性是指编写的代码可以在任何安装了JVM的平台上运行,无需修改。1)Java源代码编译成字节码,2)字节码由JVM解释执行,3)JVM提供内存管理和垃圾回收功能,确保程序在不同操作系统上运行。

C 和JavaScript通过WebAssembly实现互操作性。1)C 代码编译成WebAssembly模块,引入到JavaScript环境中,增强计算能力。2)在游戏开发中,C 处理物理引擎和图形渲染,JavaScript负责游戏逻辑和用户界面。

多次调用session_start()会导致警告信息和可能的数据覆盖。1)PHP会发出警告,提示session已启动。2)可能导致session数据意外覆盖。3)使用session_status()检查session状态,避免重复调用。

C 在现代世界中的应用广泛且重要。1)在游戏开发中,C 因其高性能和多态性被广泛使用,如UnrealEngine和Unity。2)在金融交易系统中,C 的低延迟和高吞吐量使其成为首选,适用于高频交易和实时数据分析。

在Java中编写平台特定代码的原因包括访问特定操作系统功能、与特定硬件交互和优化性能。1)使用JNA或JNI访问Windows注册表;2)通过JNI与Linux特定硬件驱动程序交互;3)通过JNI使用Metal优化macOS上的游戏性能。尽管如此,编写平台特定代码会影响代码的可移植性、增加复杂性、可能带来性能开销和安全风险。
