
# 边缘安全对SQL注入、XSS跨站脚本和PHP注入攻击的检测原理是什么？
SQL（Structured Query Language）注入攻击是一种常见的Web攻击方法，攻击者通过把SQL命令注入到数据库的查询字符串中，最终达到欺骗服务器执行恶意SQL命令的目的。例如，可以从数据库获取敏感信息，或者利用数据库的特性执行添加用户、导出文件等一系列恶意操作，甚至有可能获取数据库乃至系统用户最高权限。
XSS攻击通常指的是通过利用网页开发时留下的漏洞，通过巧妙的方法注入恶意指令代码到网页，使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript，但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后，攻击者可能得到包括但不限于更高的权限（如执行一些操作）、私密网页内容、会话和Cookie等各种内容。
#### 边缘安全针对SQL注入攻击的检测原理
边缘安全针对SQL注入攻击的检测原理是检测SQL关键字、特殊符号、运算符、操作符、注释符的相关组合特征，并进行匹配。
- SQL关键字（如union、Select、from、as、asc、desc、order by、sort、and 、or、load、delete、update、execute、count、top、between、declare、distinct、distinctrow、sleep、waitfor、delay、having、sysdate、when、dba_user、case、delay 等）
- 特殊符号（'",; ()）
- 运算符（±\*/%\|）
- 操作符（=、\>、\<、\>=、\<=、!=、+=、-=）
- 注释符（--、/\*\*/）
 
#### 边缘安全针对XSS攻击的检测原理
边缘安全对XSS跨站脚本攻击的检测原理主要是针对HTML脚本标签、事件处理器、脚本协议、样式等进行检测，防止恶意用户通过客户端请求注入恶意XSS语句。
- XSS关键字（javascript 、script、object、style、iframe、body、input、form、onerror、alert等）；
- 特殊字符（\<、\>、'、"）；
- 外部链接（href="http：//xxx/"，src="http：//xxx/attack.js"）。
![](https://support.huaweicloud.com/edgesec_faq/public_sys-resources/note_3.0-zh-cn.png)
如果业务需要上传富文本，可以用multipart方式上传，不用body方式上传，放在表单里，即使base64编码也会解码。分析业务场景，建议限制引号、尖括号输入。
#### 边缘安全针对PHP攻击的检测原理
如果请求中包含类似于system(xx) 关键字，该关键字具有PHP注入攻击风险，因此，边缘安全会拦截该类请求。
