Commit faf66d1 1 parent b5b2ead commit faf66d1 Copy full SHA for faf66d1
File tree 1 file changed +47
-2
lines changed
1 file changed +47
-2
lines changed Original file line number Diff line number Diff line change @@ -1873,8 +1873,8 @@ echo "<div>" . $input . "</div>";
1873
1873
```
1874
1874
1875
1875
``` 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>
1878
1878
```
1879
1879
1880
1880
#### XSS 分类
@@ -1890,8 +1890,53 @@ http://www.a.com/test.php?param=<script>alert(/xss/)</script>
1890
1890
1891
1891
### 跨站点请求伪造(CSRF)
1892
1892
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
+
1893
1918
### SQL 注入
1894
1919
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
+
1895
1940
### IP 地址能被伪造吗
1896
1941
1897
1942
### include 请求参数
You can’t perform that action at this time.
0 commit comments