说一下我了解的前端安全问题

393 阅读4分钟

图不重要看下面 ↓↓↓↓

前言

本文1108字,阅读大约需要3~4分钟。
一入前端深似海啊!!!!


---------------------------------------一条分界线--------------------------------------

正文开始

前端每次向服务器发送数据时都要考虑安全性。不过像个人网站之类的就不需要有这种担心,因为很少会有人访问(比如说我朋友的)。一般来说,攻击者最可能攻击的就是HTML表单。这很好理解,我们在访问一个网站时,它的很多功能都是需要登录之后才能使用,其中避不开表单提交。但是这些安全问题基本都不是来自HTML表单本身,它们取决于服务器如何处理提交上去的数据。

话题引入完了,下面来说一下几种比较著名的攻击;

CSRF 和 XSS

跨站脚本和站点请求伪造这俩兄弟我听了不下20遍了。
XSS是攻击者将客户端脚本注入到受害者访问的网页上。攻击者可以使用跨站点脚本攻击的漏洞来绕过诸如同源策略之类的访问控制。解释一下,有些攻击者会将脚本设置为图片,其中的src属性是可以跨域的。当图片加载时,脚本在你没发觉的情况就自动执行了。
CSRF类似与前者,但他们的目标不同,CSRF的野心更大。它希望获得更高的权限(例:管理员权限),这样他们就可以为所欲为了。

总结起来就是一句话:XSS攻击利用用户对网站的信任,而CSRF攻击则利用网站对其用户的信任。

那么问题来了,要怎么去解决呢?
那么问题来了,要怎么去解决呢?
那么问题来了,要怎么去解决呢?

对于用户来说,不能对他们要求太多,毕竟访问网站的人大部分都不是程序猿,所以就要去处理用户提交的数据。尽量不要显示用户提供的HTML内容;还有就是当今市场上几乎所有的框架都实现了一个最小的过滤器,它可以从任何用户发送的数据中删除HTML、script标签、iframe标签等元素

SQL注入

SQL 注入是一种试图在目标网站使用的数据库上执行操作的攻击类型。通常是发送一个SQL请求,希望服务器能够执行(通常发生在应用服务器试图存储由用户发送的数据时)。这是攻击网站的主要途径之一。它后果可能是可怕的,小到数据丢失,大到通过使用特权升级控制整个网站基础设施。这是一个非常严重的威胁,所以在存储用户发送的数据后,一定要执行一些清理工作(例如,在php/mysql基础设施上使用mysqli_real_escape_string())。

HTTP数据头注入和电子邮件注入

这种类型的攻击出现在当您的应用程序基于表单上用户的数据输入构建HTTP头部或电子邮件时。这些不会直接损服务器或影响用户,但它们会引发一个更深入的问题,例如会话劫持或网络钓鱼攻击。这方面了解的较少,就介绍这么多,感兴趣的同学可以去了解一下。

总结

无论是什么攻击,想要把风险降到最小,就要做到永远不要相信任何人,包括自己。即使是一个值得信赖的用户也可能被劫持。比如在QQ中给你发具有极具诱惑性标题链接的好友。

所有到达服务器的数据都必须经过检查和消毒,没有例外。

  1. 远离有潜在危险的字符转义。应该如何谨慎使用的特定字符取决于所使用的数据的上下文和所使用的服务器平台,但是所有的服务器端语言都有相应的功能。
  2. 限制输入的数据量,只允许有必要的数据。

---------------------------------另一条分界线------------------------------------------

博主水平有限(样式有待改进),欢迎来找茬(手动滑稽),十分感谢。

参考资料:

developer.mozilla.org/zh-CN/docs/…