Open tiantingrui opened 2 years ago
Cross-site scripting, XSS
攻击者想尽一切办法可执行代码 注入到网页中.
论坛发帖,商品评价,用户私信等等这些用户保存数据的网站
攻击步骤:
攻击者结合各种手段,诱导用户点击恶意 url (广告)
通过URL传参数的功能,比如网站的搜索或者跳转等
攻击步骤:
取出和执行恶意代码的操作,由浏览器完成。
攻击步骤: url 参数中写入可执行脚本,然后用户点击相关链接执行了恶意脚本
主旨:防止攻击者提交恶意代码,防止浏览器执行恶意代码!
对数据进行严格的输入编码,比如 html 元素,js,css,url vue v-html react dangerouslyHtml
CSP content Security Policy 内容安全策略 (X-XSS-Protection) default-src 'self' 所有加载的内容必须来自站点的同一个源
输入验证 phone,URL,电话号码,邮箱
开启浏览器的XSS防御:Http Only Cookie
验证码
Cross-site request forgery, 跨站请求伪造
a.com/act/withdraw?num=12453
<img src="xxxxx">
<form method="POST">
<input type="hidden" name="account" value="terry">
</form>
<script>document.forms[0].submit()</script>
<a href="xxx" />
CSRF一般都是发生在第三方域名,攻击者无法获取到cookie 信息的。
request header origin referrer Referrer-Policy (用来监管哪些访问来源信息 - 会在 referrer 中发送)
Strict: 浏览器会完全禁用第三方cookie Lax: POST img iframe 不会携带 cookie None: 什么都可以,和之前一样
cookie肯定不是 http only.
比如我们提供一个静态服务,通过请求的参数url 来返回给用户/前端想要的资源.(有可能访问到其他目录下的文件)
const fs = require("fs");
const http = require("http");
const path = require("path");
const resovlePath = require("resolve-path");
http
.createServer(function (req, res) {
try {
const rootDir = path.join(__dirname, "static");
const file = path.join(rootDir, req.url);
fs.readFile(file, function (err, data) {
if (err) {
// res.writeHead(404, { "Content-Type": "text/plain;charset=utf-8" });
// res.end("找不到对应资源");
// return;
throw err;
}
res.writeHead(200, { "Content-Type": "text/plain;charset=utf-8" });
res.end(data);
});
} catch (error) {
console.log(error);
res.writeHead(404, { "Content-Type": "text/plain;charset=utf-8" });
res.end("找不到对应资源");
}
})
.listen(8008);
console.log("server is listening on port 8008");
你了解哪些前端安全相关的只是?或者说了解那些名词?
浏览器相关:
Node(服务端)相关: