Skip to content

Commit faf66d1

Browse files
committed
完善SQL注入内容
1 parent b5b2ead commit faf66d1

File tree

1 file changed

+47
-2
lines changed

1 file changed

+47
-2
lines changed

QA.md

+47-2
Original file line numberDiff line numberDiff line change
@@ -1873,8 +1873,8 @@ echo "<div>" . $input . "</div>";
18731873
```
18741874

18751875
```text
1876-
http://www.a.com/test.php?param=这是一个测试!
1877-
http://www.a.com/test.php?param=<script>alert(/xss/)</script>
1876+
https://blog.maplemark.cn/test.php?param=这是一个测试!
1877+
https://blog.maplemark.cn/test.php?param=<script>alert(/xss/)</script>
18781878
```
18791879

18801880
#### XSS 分类
@@ -1890,8 +1890,53 @@ http://www.a.com/test.php?param=<script>alert(/xss/)</script>
18901890

18911891
### 跨站点请求伪造(CSRF)
18921892

1893+
跨站请求伪造(Cross-site request forgery,简称 CSRF), 是一种挟制用户在当前已登录的 Web 应用程序上执行非本意的操作的攻击方法
1894+
1895+
#### CSRF 示例
1896+
1897+
- 在私有域构造页面P
1898+
1899+
> https://blog.maplemark.cn/csrf.html
1900+
1901+
其内容为
1902+
1903+
```html
1904+
<!--仅用于演示,假设该点赞为 GET-->
1905+
<img src="https://segmentfault.com/api/article/1190000019050946/like?_=0faa0315ff95872d8b0f8da02e343ac7">
1906+
```
1907+
1908+
- 诱使目标用户访问页面P
1909+
1910+
如果你已经访问过 SF 网站,并且已经登录。可以看到在访问页面P之后,已经对 SF 文章进行点赞了
1911+
1912+
#### CSRF 防御
1913+
1914+
- 增加验证码(简单有效)
1915+
- 检查请求来源是否合法
1916+
- 增加随机 token
1917+
18931918
### SQL 注入
18941919

1920+
输入的字符串中注入 SQL 指令,若程序当中忽略了字符检查,导致恶意指令被执行而遭到破坏或入侵
1921+
1922+
#### SQL 注入示例
1923+
1924+
```php
1925+
$id = $_GET['id'];
1926+
$sql = "SELECT * FROM `user` WHERE `id`={$id}";
1927+
```
1928+
1929+
将传递参数改为
1930+
1931+
> 1;DROP TABLE OrdersTable--
1932+
1933+
#### SQL 注入防御
1934+
1935+
- 使用预编译语句绑定变量(最佳方式)
1936+
- 使用安全的存储过程(也可能存在注入问题)
1937+
- 检查输入数据的数据类型(可对抗注入)
1938+
- 数据库最小权限原则
1939+
18951940
### IP 地址能被伪造吗
18961941

18971942
### include 请求参数

0 commit comments

Comments
 (0)