【PHP】什么是XSS—–防御措施

XSS的意思是什么?

XSS定義(维基百科)

跨站脚本(cross site scripting)是指利用Web应用程序的漏洞或利用其进行攻击的一种形式。在将弱点分为树状结构的CWE分类中,XSS被归类为由于不当输入验证(CWE-20)导致的注入(CWE-74)之一(CWE-79)。简称为XSS。以前也使用过CSS这个缩写,但由于与层叠样式表(Cascading Style Sheets)相混淆,所以这个缩写已经不太常用了。它有一个历史悠久的名称叫做“跨站(站点横越)”。

推荐:XSS漏洞和XSS攻击的详细信息

注射部位(维基百科)

在HTML中,以下是攻击者可能注入恶意脚本的地方:
1. 可以输入变量值的地方,如表单等。

2.脚本文
标签内部以及URL的远程引用
②标签的style属性和事件处理程序属性中的脚本描述。
具体来说,像

和等。
③可以使用”javascript:(Javascript文)”的格式(javascrypt方案)作为URL来注入javascrypt。3.可以将URL作为属性值获取的元素,以及可以直接在其中编写脚本。
具体来说,包括a元素的href属性和img、frame、iframe元素的src属性。

对抗XSS的措施

HTML特殊字符转义处理

当从用户那里获取表单值时,将在HTML中有特殊含义的符号替换为其他符号是对抗跨站脚本攻击的一种防御方法。

< → < > → >
& → &
” → ”
‘ → ‘

< → 小于 > → 大于
& → 和
” → 双引号
‘ → 单引号

function XSS_escapeForHTML($value) {
    if (is_array ( $value )) {
        $Result = array ();
        foreach ( array_keys ( $value ) as $key ) {
            $Result [$key] = $this->XSS_escapeForHTML ( $value [$key] );
        }
        return $Result;
    } else {
        $value = htmlspecialchars ( $value, ENT_QUOTES, 'EUC-JP', false ); 
        // $value = nl2br($value);
        return $value;
    }
}

参考:
・XSS(维基百科)
・跨站脚本攻击(XSS)

—我喜欢 PHP (。・ω・。)ノ♡

广告
将在 10 秒后关闭
bannerAds