xss,csrf,SQL注入

一、Xss

1、定义:跨站脚步攻击,过滤用户表单提交的数据
2、防范措施:
       a.使用PHP内置函数:htmlspecialchars(),strip_tags,trim,addslashes。
        b.PHP所有打印的语句如echo,print等,在打印前都要使用htmlentities() 进行过滤,

          这样可以防止Xss,注意中文要写htmlentities($name,ENT_NOQUOTES,GB2312)

        c.php防注入和XSS攻击通用过滤函数

            

 
 
  1. <?php
  2. //php防注入和XSS攻击通用过滤.
  3. //by qq:831937
  4. $_GET && SafeFilter($_GET);
  5. $_POST && SafeFilter($_POST);
  6. $_COOKIE && SafeFilter($_COOKIE);
  7. function SafeFilter (&$arr)
  8. {
  9. $ra=Array('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/','/script/','/javascript/','/vbscript/','/expression/','/applet/','/meta/','/xml/','/blink/','/link/','/style/','/embed/','/object/','/frame/','/layer/','/title/','/bgsound/','/base/','/onload/','/onunload/','/onchange/','/onsubmit/','/onreset/','/onselect/','/onblur/','/onfocus/','/onabort/','/onkeydown/','/onkeypress/','/onkeyup/','/onclick/','/ondblclick/','/onmousedown/','/onmousemove/','/onmouseout/','/onmouseover/','/onmouseup/','/onunload/');
  10. if (is_array($arr))
  11. {
  12. foreach ($arr as $key => $value)
  13. {
  14. if (!is_array($value))
  15. {
  16. if (!get_magic_quotes_gpc()) //不对magic_quotes_gpc转义过的字符使用addslashes(),避免双重转义。
  17. {
  18. $value = addslashes($value); //给单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)加上反斜线转义
  19. }
  20. $value = preg_replace($ra,'',$value); //删除非打印字符,粗暴式过滤xss可疑字符串
  21. $arr[$key] = htmlentities(strip_tags($value)); //去除 HTML 和 PHP 标记并转换为 HTML 实体
  22. }
  23. else
  24. {
  25. SafeFilter($arr[$key]);
  26. }
  27. }
  28. }
  29. }
  30. ?>

二、CSRF

     1、定义:跨站请求伪造(攻击者盗用了你的身份,以你的名义发送恶意请求)
      2.CSRF攻击原理及过程如下:
               a. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;

               b.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;

                c. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;

                d. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;

                e. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。

       3.防范措施:
            a.在HTTP请求中增加token并验证
            b.在HTTP头中自定义属性并验证
            c.验证 HTTP Referer 字段
            d.增加验证码机制(图片验证码)
        

三、SQL注入
     1.坚持两个原则
            a.对输入的数据进行过滤(addslashes())
            b.转义用于向数据库发出的数据(mysql_real_escape_string())
            c. 使用支持参数化查询语句和占位符的数据库操作类(如PEAR::DB, PDO等),你就会多得到一层保护
           d.过滤输入
           e.变量类型限制
           f.采用PDO操作数据库
           g.配置好数据库的用户权限

四、就是在PDO底层是如何处理该sql语句的,可以这么有效的防止注入问题

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XSS(跨站脚本攻击),CSRF(跨站请求伪造)和SQL注入是常见的Web安全漏洞。 XSS攻击是指攻击者通过在网页中注入恶意脚本,使得用户在浏览网页时执行这些脚本,从而获取用户的敏感信息或者进行其他恶意操作。为了防止XSS攻击,可以对用户输入的数据进行转义,比如将特殊字符进行转义,限制用户输入的数据类型,过滤掉可能包含恶意脚本的标签等措施。\[3\] CSRF攻击是指攻击者利用用户已经登录的身份,在用户不知情的情况下发送恶意请求,从而执行一些非法操作。为了防止CSRF攻击,可以使用CSRF令牌来验证请求的合法性,每次用户登录时都会轮换CSRF令牌,确保每个请求都携带有效的令牌。\[2\] SQL注入是指攻击者通过在Web表单递交或输入域名或页面请求的查询字符串中插入恶意的SQL命令,从而实现未授权访问数据库或者篡改数据库的操作。为了防止SQL注入,可以对用户输入的参数进行校验和过滤,使用参数化语句而不是拼接字符串的方式生成SQL语句,限制数据库连接的权限,检查数据存储类型等措施。\[1\] 综上所述,为了防止XSSCSRFSQL注入攻击,需要对用户输入的数据进行校验和过滤,使用安全的编程框架和技术,限制权限,加密重要信息等措施。 #### 引用[.reference_title] - *1* *3* [详解XSS攻击、SQL注入攻击、CSRF攻击](https://blog.csdn.net/zj420964597/article/details/110179161)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [XSSCSRF、以及SQL注入](https://blog.csdn.net/weixin_34226182/article/details/94047120)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值