跨站脚本攻击 (XSS)和SQL注入漏洞php排查解决方案

简介: 跨站脚本攻击 (XSS)和SQL注入漏洞php排查解决方案

漏刻有时采用PHP-MVC结构,在参数传递过程中,已做参数过滤。

如正常的访问路径如下:

http://test.com/?m=Surveyor&a=apply

在实际进行脚本攻击的时候会使用


跨站脚本攻击 (XSS)

http://test.com/?m=Surveyor&a=apply<script>alert(1)</script>

如果调用的方法未进行安全过滤,则在访问的过程中会弹出javascript弹窗,则表明存在漏洞。


漏洞为害

1.窃取管理员帐号或Cookie,入侵者可以冒充管理员的身份登录后台。使得入侵者具有恶意操纵后台数据的能力,包括读取、更改、添加、删除一些信息。

2.窃取用户的个人信息或者登录帐号,对网站的用户安全产生巨大的威胁。例如冒充用户身份进行各种操作。

3.网站挂马。先将恶意攻击代码嵌入到Web应用程序之中。当用户浏览该挂马页面时,用户的计算机会被植入木马。


解决方案

  1. 1.表单提交或者url参数传递前,对需要的参数进行过滤;
  2. 2.增加前后端验证机制;


后端安全过滤函数

解决参数在传送的过程中,使用

/**
 * 安全过滤函数
 *
 * @param $str
 * @return $string
 */
function safe_replace($str)
{
    $string = str_replace('%20', '', $str);
    $string = str_replace('%27', '', $string);
    $string = str_replace('%2527', '', $string);
    $string = str_replace('*', '', $string);
    $string = str_replace('"', '"', $string);
    $string = str_replace("'", '', $string);
    $string = str_replace('"', '', $string);
    $string = str_replace(';', '', $string);
    $string = str_replace('<', '', $string);
    $string = str_replace('>', '', $string);
    $string = str_replace("{", '', $string);
    $string = str_replace('}', '', $string);
    $string = str_replace('\\', '', $string);
    return $string;
}
/*
 * 变量传递值函数
 * @param $str 变量值
 */
function get_param($str)
{
    $string = safe_replace($_GET[$str]);
    if ($string == '0') {
        $val = '0';
    } else {
        $val = !empty($string) ? $string : null;
    }
    return $val;
}


SQL注入漏洞

http://test.com/index.php?m=Manager&a=examineAdmin&act=examine&pro_id=914&pro_types=1
  • m=Manager,使用get_param过滤;
  • a=examineAdmin,使用get_param过滤;
  • act=examine,使用get_param过滤;
  • pro_id=914,使用get_safe过滤;
  • pro_types=1,使用get_safe过滤;
//判断是否是整数类型
function get_safe($str)
{
    $num = $_GET[$str];
    if (is_numeric($num)) {
        return $num;
    } else {
        redirect("index.php?m=Pop&a=tips&act=tips&tips_id=7");
    }
}


逻辑漏洞

漏洞说明:使用默认密码登录系统后,在强制修改密码时,存在手机验证码验证机制,但手机验证码可以使用bp拦截工具进行获取。从而得到修改密码的功能。获取验证码时抓包再进行抓回包


在登录平台、忘记密码时,系统采用手机短信验证码功能。系统生成验证码是,采用的cookies,而非session全局变量,由此导致浏览器端可以通过F12或bp拦截工具获取系统的验证码而不通过手机。

解决方案:

       session_start();
       $rmdCode = rand(111111, 999999);//随机验证码
        $_SESSION['code'] = $rmdCode;
 //登录成功后自动销毁;
    session_destroy();


密码强度

增加密码强度,强制注册时必须包含必须同时包含字母和数字且至少6位。

,pass: [/(?=.*[0-9])(?=.*[a-zA-Z]).{6,30}/, '密码必须同时包含字母和数字且至少6位']


@lockdata.cn

相关文章
|
16天前
|
存储 SQL 数据库连接
C#程序调用Sql Server存储过程异常处理:调用存储过程后不返回、不抛异常的解决方案
本文分析了C#程序操作Sql Server数据库时偶发的不返回、不抛异常问题,并提出了解决思路。首先解析了一个执行存储过程的函数`ExecuteProcedure`,其功能是调用存储过程并返回影响行数。针对代码执行被阻塞但无异常的情况,文章总结了可能原因,如死锁、无限循环或网络问题等。随后提供了多种解决方案:1) 增加日志定位问题;2) 使用异步操作提升响应性;3) 设置超时机制避免阻塞;4) 利用线程池分离主线程;5) 通过信号量同步线程;6) 监控数据库连接状态确保可用性。这些方法可有效应对数据库操作中的潜在问题,保障程序稳定性。
70 11
|
2月前
|
SQL 数据库连接 Linux
数据库编程:在PHP环境下使用SQL Server的方法。
看看你吧,就像一个调皮的小丑鱼在一片广阔的数据库海洋中游弋,一路上吞下大小数据如同海中的珍珠。不管有多少难关,只要记住这个流程,剩下的就只是探索未知的乐趣,沉浸在这个充满挑战的数据库海洋中。
67 16
|
4月前
|
运维 JavaScript 应用服务中间件
os-copilot安装与多项功能测评,帮助开发人员PHP环境排查问题
本文介绍了OS Copilot在ECS上 Alibaba Cloud Linux的安装与使用,并对其多项参数进行了功能测评。OS Copilot是为操作系统提供智能化辅助的工具,支持自动化任务、智能推荐、故障排查等功能。安装时需检查是否已安装(`rpm -q os-copilot`),若未安装则用`yum install os-copilot`命令安装,并配置AccessKey信息连接阿里云服务。通过测试不同参数命令,如`-t`参数,展示了其自动化执行和智能生成回答的能力,显著提升运维效率。
os-copilot安装与多项功能测评,帮助开发人员PHP环境排查问题
|
3月前
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
209 25
|
6月前
|
JavaScript 安全 前端开发
同源策略如何防止 XSS 攻击?
【10月更文挑战第31天】同源策略通过对 DOM 访问、Cookie 访问、脚本执行环境和跨源网络请求等多方面的严格限制,构建了一道坚实的安全防线,有效地防止了 XSS 攻击,保护了用户在网络浏览过程中的数据安全和隐私。
190 49
|
5月前
|
SQL 安全 PHP
PHP安全性实践:防范常见漏洞与攻击####
本文深入探讨了PHP编程中常见的安全漏洞及其防范措施,包括SQL注入、XSS跨站脚本攻击、CSRF跨站请求伪造等。通过实际案例分析,揭示了这些漏洞的危害性,并提供了具体的代码示例和最佳实践建议,帮助开发者提升PHP应用的安全性。 ####
166 6
|
6月前
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
196 4
|
6月前
|
SQL 安全 PHP
PHP安全性深度剖析:防范常见漏洞与最佳实践####
本文深入探讨了PHP编程中不可忽视的安全隐患,重点介绍了SQL注入、XSS攻击、CSRF攻击及文件包含漏洞等四大常见安全威胁。通过详尽的案例分析与防御策略阐述,为开发者提供了一套实用的安全编码指南。文章强调,提升代码安全性是保障Web应用稳健运行的关键,鼓励开发者在日常开发中积极践行安全最佳实践。 ####
|
6月前
|
SQL 安全 前端开发
让你彻底了解SQL注入、XSS和CSRF
了解SQL注入、XSS和CSRF
120 7
|
6月前
|
SQL PHP 数据库
20 PHP如何捕获sql错误
路老师带你深入学习PHP,掌握技术干货。本文介绍了PDO中捕获SQL错误的三种模式:默认模式、警告模式和异常模式,以及如何使用errorCode()和errorInfo()方法进行错误处理。
181 2

热门文章

最新文章