web安全:通俗易懂,以实例讲述破解网站的原理及如何进行防护!如何让网站变得更安全。

https://www.cnblogs.com/1996V/p/7458377.html

感谢原作者写的内容 

安全很重要 自己 理解的不是很深入 需要加强学习

不管之前的等保 还是 最简单的SQL注入那一块 

我感觉自己落下的还很多 需要加强学习提高.

本篇以我自己的网站为例来通俗易懂的讲述网站的常见漏洞,如何防止网站被入侵,如何让网站更安全。

要想足够安全,首先得知道其中的道理。

本文例子通俗易懂,主要讲述了 各种漏洞 的原理及防护,相比网上其它的web安全入门文章来说,本文更丰富,更加具有实战性和趣味性。

本文讲解目录大致如下,讲述什么是暴力破解、xss、csrf、挂马等原理及对应的防护。

          对手机验证码登录方式进行暴力破解及防护

           无视验证码而无限注册账号原理及防护

           什么是XSS?通过留言板来了解XSS

           什么是CSRF?如何应对?

           DDOS的原理及防护

           挂马的原理,如何防止网站被挂马?

           什么是钓鱼网站,如何避免钓鱼网站

           什么是安全渗透测试

        

这里提前做个部署概念讲解: 客户端,即当前的 浏览器 软件 。 服务端 , 如 我是.net ,  那么如果我想让我的网站放到互联网上让你也能够在线浏览的话, 我需要对我的vs项目进行打包,然后选择一台电脑,这台电脑最好装着 windows server系列的系统(够专业) 来做服务器(也就是说服务器 就是 一台 和你平常用的电脑系统不一样,配置不一样,专门用于服务的电脑),然后我再在这台 电脑上(服务器) 装上一个 名叫 IIS Web服务器 的 一款软件,然后在这个软件上进行操作,把我的包给导入在这个软件中。这样,这个名叫 IIS Web服务器的软件就会 对包解析,然后再经过其它的相关配置,最终,你能够从互联网上点击浏览到我的网站。

所以,我下文的服务器,不要把这个名词想的太高大上,就是一款软件而已。

像搞JAVA的,无论是Linux还是Windows都可以当做服务器系统,还可以有众多web服务器软件可以选择,WebSphere 服务器、JBoss服务器等。

而.Net因为环境封闭,所以只能用微软的东西,windows+IIs,唯一区别就是版本了。

我的网站环境: windows server2008 R2 + IIS7.5

接下来我要简单的介绍下我网站的结构。

我的网站是一个轻博客网站,叫做1996v轻博客,用户可以注册账号后在我的网站上发布博客,也可以通过我发放的权限自由的更改页面结构。

我的网站分为  前台展示+后台设置  两部分组成  ,  废话不说了,上图。

对手机验证码进行暴力破解及防护

前台页面的所有展示都是由后台控制的,接下来我们先从   登录页面  开始   ,  看看 有什么漏洞。

下图就是登录页面,乍一看,这个页面挺干净的,就一个登录按钮的单击事件,和正常的网站的登录一样,漏洞,入侵,从哪去挖掘,又谈何说起呢?

别急,我们按F12打开开发者控制台(我的浏览器是谷歌浏览器)。

因为我不确定当前看我 文章的都是什么群体,所以我会尽可能的写的够详细,不要嫌我啰嗦,我现在要简单介绍下F12 开发者控制台是什么。

如图,当你按下F12后,右侧会弹出个框,这个就是开发者控制台。上面有一列选项卡,我这里尽对前四个做下说明。

1. Elements 查看当前文档的DOM信息, 也就是可以看到当前页面经过浏览器渲染后最终呈现出来的html。

2. Console 控制台,可以直接在这里面敲代码,可以得到即时响应。

3. Source 查看当前站点的资源文件,在这里面可以看到当前站点下(www.1996v.com)的当前页面加载的所需源文件。

4. Network 这个主要是用来查看当前的页面的一些网络请求。

开发者控制台主要是给前端或者全栈开发师用的,可以获取和分析被查看的页面,基本上主流浏览器都有这个功能,通常是按F12将其打开。

现在,我们先选择手机登录:

这是我的登录界面,可以看到,用户可以自由选择用手机号去登录,和用账号密码去登录这两种登录方式。

先说下手机号去登录:

下面是我网站的手机登录的大致实现逻辑,放图:

整体流程为,当用户输入手机号发送验证并填写验证码点击登录按钮的时候,我的后台,会接收到用户填写的 手机号 和 验证码 ,  如果 验证码与运营商返回给我的验证码相同的话,那么就登录成功。

讲道理,这段代码没毛病,逻辑没毛病,总之,必须你输入对了正确的手机号和对应的正确的验证码你才能登录,否则,你怎么也登录不了。

但是,我还是能破解的!

首先,我经过多次测试,我知道 每次返回的验证码 是由4个数字组成,其次,验证码过期时间为1小时,而如果成功登录,会返回我一个状态码:1。

4个数字,无非就是0001~9999中间的一个!

也就是说,我只要在1个小时内,我一条条试,顶多9999次,肯定有一次能输入对!

而只要输对了,那就是一件很恐怖的事,我成功的登录了你的账号,去寻找我想要的东西。

那么,首先,我先从控制台中的Source来查看网页的源文件,进而知道登录的接口的地址以及参数名称,

我知道了接口地址:Server/Index/ApplayLogin.ashx,也就是 http://www.1996v.com/Server/Index/ApplayLogin.ashx

我也知道了参数名称,txtPhoneNum,txtPhoneCode。

我可以在console控制台里自己写ajax来进行试验破解。如图:

然后回车一下,则会触发当前console中写入的内容,一个ajax将会执行。如果ajax返回的是1则说明登录成功,如果不成功,那么我就再换一个txtPhoneCode,一个一个ajax来试。

那么这种方式,因为验证码为4位数字,为了保证能够成功破解,就必须把0001~9999的每一种情况都写出来,那么就要写9999个ajax,复制粘贴ajax太过于麻烦,

那么有没有更好的破解方式?

有!使用抓包工具,这里将展示fiddler2.0工具。

什么是抓包?我通俗点来说就是意思是说把 发往和接受网络的信息拦截下来。

就比如当你点击登录按钮的时候,会触发这个ajax,这个ajax最终会变成 一段 http协议 给发送到  http://www.1996v.com/这个地址下,虽然ajax是你写的,但是你是看不到这段http协议的,而抓包工具可以捕获到这段http协议,你可以修改这串http协议。

先学而后知,如果你不懂什么是抓包,没问题,你仍然看的懂我接下来的教程,你只需要先记住个概念就行了,我有一款软件,叫做,fiddler,这个软件的类型是抓包软件,它可以模拟和修改http协议,来实现不打开浏览器也可以对服务器进行交互的过程。

对于抓包工具及fiddler,我这里只是先做个概念,方便后文,如有兴趣者,请自行百度:什么是http协议、fiddler教程。

你点击页面登录按钮,然后就会有一个ajax请求发送的http协议,而fiddler则会捕获这个请求,如图,双击对应的请求,右侧上方raw选项卡下则是该请求的httpRequestHeader,就是发送的http协议头了,服务器收到这个协议后会返回HttpResponseHeader输出流,在textview选项卡下可以看到。

OK,我们把完整的 httpRequestHeader给复制下来,然后点击请求构造:

txtPhoneNum=18889785648&txtPhoneCode=0001 这就是发送的参数, 填写在Request Body里面,代表着ajax中 data的部分,最后点击Execute按钮 进行发送。

这样,只需要对Request Body中的txtPhoneCode进行修改就好了,不需要写9999个ajax那么麻烦。

不过,有没有更简单的方法?

当然有,我们还可以自己写个程序,填写一下参数规则,然后运行程序,程序自动帮我发送http协议,并且自动帮我换参数。

而网上,已经有现成的工具,不用您去自己写了。

类似于这样的功能的软件,后面我会介绍几款专业点的web破解软件。

如上图,是对office办公文档进行密码破解,原理都一样,先输入密码的规则,然后软件会根据规则自动生成一个  密码列表集合 ,比如0001~9999,那么就会 生成 一个 List<string> 集合,这个集合里面包含了如上规则的所有密码,然后软件对密码进行一个一个尝试,直到尝试到正确的密码提示您破解成功,这种模式叫做:暴力破解

而密码列表集合,也有个专门的名词来描述,叫做:密码字典

好了,如上是一种破解手段,暴力破解,那么怎么防护呢?

就以本文案例来说,加长这个短信验证码的长度,本来是4位,我们可以变成6位。对IP进行限制,在该IP下出现错误在规定时间超过3次,则封停24小时。对手机号做限制,如果第一次输入错误,则延长10秒进行登录,第二次输入错误则延长1分钟才能进行登录,依次类推。

这样,就可以很好的防范暴力破解了。

绕过验证码验证从而无限注册

接下来,我们看看注册。

当我在注册页面填写完账号密码后,到了 上传头像这一步了。

在任何网站当中,上传文件,和验证码,都是两大主要破解对象,通过上传文件的漏洞,我甚至可以获得服务器的控制权,后面我会讲上传文件破解的思路,接下来要讲验证码这一块。

如图,要输入验证码,这个账号才能注册成功。在后台当中,验证码大多就是用session和服务器缓存来保存,默认配置session依赖于iis进程,容易丢失,我这里就是用session来保存验证码的。

当进入这个页面的时候,会调用一个验证码生成方法:

也就是这个接口   http://www.1996v.com/Server/verification/ValidateCode.aspx  ,它会在我后台 产生一个 Session ["  ValidateCode "] ,当我点击注册的时候,我会效验这个 Session ["  ValidateCode "] 是否存在,如果存在就效验与浏览器传给我的 验证码值是否相等,如果相等则进行 接下来的注册代码逻辑。

我加了验证码验证这一环节,就能防止有人恶意注册了,如果不加,那么你通过上面的这些方法分分钟能注册一百个一万个。

什么是恶意注册?恶意注册有什么用?

我这个网站你是体验不出来恶意注册的好处的,但是我可以这样给你举个例子。你现在看到的不是我的网站,而是 新浪微博,你通过恶意注册100万个账号,然后这100万个账号同时关注一个账号,那么等于你就拥有了一个拥有百万粉丝的 新浪微博 账户,  管它死粉活粉,这玩意可就值钱了,你随便吹个牛逼卖一下,大几千上万肯定是有的。

那么,我加了验证码就可以防止恶意注册了吗?

当然不是,我上面的验证码就存在着2个漏洞,第一是 验证码 图片太过于简单,可以软件识别图片来进行破解, 第二是  逻辑漏洞。

先说第一个:用软件来识别,软件是怎么来识别的呢?

就是通过一系列的算法,通过图片的背景颜色等,来对图片进行分解,最终得出正确率高的验证码。

比如遍历所有像素点,然后得出数组,对点和线进行算法分析,删除干扰的点线,删除不规则的数组项,然后再对过滤出来的数据进行本地数据库的一个匹配,最终得出一个正确的验证码。而本地数据库是从哪冒出来的,它是对前面步骤的重复N次而筛选保留下来的数据。

市面上这类软件很多,算法越高级的软件也就越高级, 而怎样防止这些软件破解验证码呢?那就是不走寻常路,放一些连人都无法轻易识别的验证码出来,或者猜个迷之类的...

好,接下来说第二种,逻辑漏洞。

讲道理,我的代码,浏览器点击注册按钮,如果验证码错误,则重新调用http://www.1996v.com/Server/verification/ValidateCode.aspx接口来对验证码进行刷新,如果验证码正确,并且注册成功,则跳转到新的页面。

而服务端,则是判断了session不为null,以防止未将对象引用到对象实例,又判断了与浏览器接收过来的code是否相等,不相等则调用验证码刷新接口,那么,还有什么我没有考虑到的呢?

有,当然有,那就是当我验证码输入正确时,因为我后台没有刷新session,那么我就可以通过抓包等形式,无限次的进行注册!

只有浏览器传过来的参数和我现在的服务端的Session[ " ValidateCode "  ] 相等,才能进行注册的逻辑。而是什么决定了 Session[ " ValidateCode "  ] 的值?是Server/verification/ValidateCode.aspx这个接口,我只要不调用这个接口,那么我的 Session[" ValidateCode "] 就永远不会变,所以我只需要输入对一次,那么就可以通过抓包进行无限次的注册。

所以,代码应该变成这样:

只要验证码输入正确,则立即调用刷新Session的接口。

什么是XSS?通过留言版来了解XSS

现在,成功注册账号,进入到当前账号的主页展示界面。

我们点击留言板进入留言板页面。

然后,在留言框中输入一段脚本,看看会不会执行。

结果,这段脚本根本不会执行。

在这里,我将给大家普及下XSS注入攻击。

什么是Xss?

它指的是恶意攻击者往Web页面里插入恶意,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的

就如同我现在  向留言板里插入 <script>alert("小曾你好帅啊")</script> 这样一段话,如果网站没有对 这段话进行过滤的话 ,那么当你浏览这个留言板的时候,就会执行这串脚本,弹出个窗说 小曾你好帅啊 。可能你发现可以输入脚本对你并没有产生安全威胁。那么我可以输入<script>window.open( " xxxxx.com " )</script>  这样的  跳转网页之类的代码,或者 document.cookie 获取你的cookie等之类的代码,这样的威胁就很大了。

以cookie为例,为了保持登录的稳定状态,一般会把token令牌(也就是你的账号密码)保存在cookie设置个过期时间放在浏览器进行保存,网站效验你登录状态,其实最终是根据cookie来的,如果你的网站没有对ip进行限制(一般都没有进行限制),我可以把你的cookie复制粘贴然后发送到另一台电脑上,然后设置下cookie,和登录你账号密码  是没区别的。

所以,如果网站里有留言或者私信或者发表文章的这些功能的时候,一定要对这些特殊字符进行过滤。

像上面这段<script>alert("小曾你好帅啊")</script>最终在我数据库中保存的是&lt;script&gt;alert("小曾你好帅啊")&lt;/script&gt

function (str, reg) {
        return str ? str.replace(reg || /[&<">'](?:(amp|lt|quot|gt|#39|nbsp|#\d+);)?/g, function (a, b) {
            if (b) {
                return a;
            } else {
                return {
                    '<':'&lt;',
                    '&':'&amp;',
                    '"':'&quot;',
                    '>':'&gt;',
                    "'":'''
                }[a]
            }

        }) : '';
    }

不过,我当前的留言板是采用json格式进行解析的,所以还需要对\符号进行转义,否则,如果你在回复框中输入一个 \ 符号, 则照样会报错。

上面这是Xss,只要对入口处对字符串浏览器服务端都做好过滤就可以有效的防范。

这里插入一条例子,在2011年的BlackHat DC 2011黑客大会上,一名黑客Ryan Barnett给出了一段关于XSS的示例javascript代码:

1
($=[$=[]][(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+($$=($_=!''+$)[_/_]+$_[+$])])()[__[_/_]+__[_+~$]+$_[_]+$$](_/_)

这段代码,巧妙的躲过掉一些过滤函数的检查,最终,被浏览器解析成 alert(1)

空数组是一个非null值,因此![]的结果是false(布尔型)。在计算false + []时,由于数组对象无法与其他值相加,在加法之前会先做一个字符串的转换,空数组的toString就是"",也就是说false+[]的结果为"false",

而在js中,~符号是 按位取反运算符, ~[] 则会被解析成-1 ,~[1] 则会变成-2  等等等等,最终就以这种巧妙的思想来变成了windows['alert(1)']。

不过这其实也是和浏览器的解析有关,可以把它理解成一个漏洞,总之,现如今的浏览器大多不能再实现这段代码。

1
(!(~+[])+{})[--[~+"1"][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]]

  不过 这段代码 是可以的 最终输出 eb , 大家可以试着把 这个1给删掉 看看会输出什么

在我的网站上你可以发表文章,用的是ueditor,发表文章你可以自由的更改文章的html,但是我后台通过正则表达式对脚本进行了过滤,如果没有我给你的脚本权限,你所有的脚本代码都会自动过滤掉,有兴趣的朋友可以想想思路想想办法,看能不能找到可以xss的地方。可以加下.net/web交流群 166843154,一起讨论讨论。

CSRF的原理,如何防护?

接下来我们在留言框中发一条信息:

我们会发现,当点击【发布】按钮的时候,实际上是以Post的方式调用了 http://www.1996v.com/Server/FootMark/AddFootMark.ashx 这个接口。

现在,我要搞破坏,我写个页面,然后这个页面调用这个接口,只要是打开了我这个页面的人,如果他在1996v网站处于登录状态的话,他都会进行一段留言,留言内容为:CSRF。

接下来我们新建个页面,这个页面就写个ajax:

然后运行该页面

发现 发表成功,我们在转回留言页面,发现同样的是一行CSRF出现在留言板上。

所以这里给大家一个思想就是,浏览器上所有的一切,你的各种按钮,与服务端的交互无非都是一段http协议,说白了,就是一个个接口。

你调用什么样的接口就会发生什么样的事,就比如 我的网站 现在有一个 关注功能的 接口, 这个接口是  http://xxxxxxxxxxxxx.com?name=秦始皇,意思就是,只要访问了这个接口,那么 当前登陆者就会关注一个  名叫 秦始皇  的选手,像我的新浪微博账号,什么都没有发布,就莫名其妙的就有几十个粉丝,像有些人,明明什么都没做,点开空间却突然发现自己不知何时发了好多小广告。

等等例子,以上这种方式就属于CSRF(伪装跨站攻击)

所以,千万不要乱点击链接。

当然,浏览器 也针对这种情况 做了浏览器上的一个安全限制,叫做:同源策略

大致意思就是,但凡遵守 同源策略规则 的浏览器  ,在这个浏览器上  如果 a网站 想调用b网站 的接口 ,如果b网站的服务器不同意的话,a网站的调用就会报错。

所以,不遵守 同源策略 的浏览器 , 都是 不安全的 浏览器 ,不过现在大部分主流浏览器 都遵守 同源策略,放心用吧。

不过,因为同源策略是针对浏览器,所以如果你会抓包,你懂http协议,你直接在服务器上写一个http请求的话,同源策略就没用了。

目前很多网站,对于一些并没有涉及到利益或安全的接口上,大多都存在着CSRF的漏洞。

如果你搞的是商城之类的网站,那么你就必须要重视这块了。

比如交易的时候,我把你的支付接口进行各种包装,然后诱导其它人使用这个接口给我汇账...

那么怎样避免呢?除了要效验Referer主要还是靠Token,后端接口必须要有完善的鉴权机制, 当你进入交易页面的时候,根据有效时间、有效次数、当前用户等生成一条Token令牌,然后将令牌存到header中或者直接带过去,后台进行匹配,吻合即交易,不吻合就属于非法请求。

除非你也知道这条Token,那么请求都将被拦截。

DDOS原理及防护

在这里,我还要小小的提示下,http协议可不止get、post

还有危险的PUT、DELETE等,如果我用Delete方式进行请求,那么请求啥,服务器就会删啥。

我们可以用OPTIONS的请求方式来判断,服务器允许哪几种请求。

我们发现,我的网站服务器允许的请求类型有:OPTIONS(可以获取服务器允许的请求类型)、TRACE(用于远程诊断服务器)、GET、HEAD(类似于GET, 但是不返回body信息,用于检查对象是否存在,比如判断接口是否可以访问)、POST

一般服务器会自动关闭掉危险的请求方法,上图我所示的是IIS7.5默认的 服务器允许请求的类型。

而不管是哪种类型,在后台服务器上的处理模式都是统一的,服务器因为CPU等配置的不同,在同一时间能够请求的并发处理数是有限制的。

比如我这台云服务器,可以在同一时间请求50个并发量,如果你开500个线程来发送http请求同一时间访问我的服务器,那我的服务器会挂掉的。

对攻击网站发动大量的正常或非正常请求、耗尽目标主机资源或网络资源,从而使被攻击的主机不能为合法用户提供服务,这个就属于 DDOS 攻击

对于DDOS,建议买高防的DDOS服务器就可以了。

挂马的原理,如何防止网站被挂马?

上面的XSS,CSRF主要是动脑筋来找思路,无论技术高低,只要你能找到漏洞那就能造成很严重的后果,我现在要介绍的是危害很严重并且普遍存在的 上传漏洞。

我的网站的上传,也就是上传图片。我的做法是这样的,先在浏览器把文件转换为base64,然后传到浏览器,再效验一下,正确就直接按上传过来的后缀进行保存,否则就是非法请求。

那么,如何进行效验呢?

通过截取扩展名来做判断,或者通过ContentType (MIME) 判断,但是这两种都不安全。

ContentType我把包修改一下修改成image类型就可以绕过。

而扩展名验证这一块也有漏洞可寻,不过是存在于IIS6.0服务器上的。

如果你的服务器是IIS6.0,我现在上传一个文件名叫做   新建文本文档.txt%00.jpg  的文件, 这个文件在服务器上被辨别后缀是.jpg,但是保存在本地 却以   新建文本文档.txt   的形式保存,这样,就成功的绕过了你的后缀名的判断,这种方式叫做  %00文件名截断  。

如果人家上传的是一个关机指令的脚本,那么一旦运行成功的话就会关机。

那么这一块该怎么防范呢?我们可以把文件变成Byte[]来存储,然后在进行读取效验,或者不怕麻烦的可以直接在服务器再转一道类型,如果报错就是假的。这里就不贴代码了,请自行百度.net获取文件真实类型。

关于IIS6.0的上传漏洞还有一些,如在网站目录中如果存在名为*.asp、*.asa的目录,那该目录内的任何文件都会被IIS解析为asp文件并执行。

这种通过上传一段脚本木马的方式就叫做挂马

这其中,有一款比较厉害的软件叫做 中国菜刀 ,俗称“ 一句话木马 ” ,意思是 ,你用这个软件特殊处理一个文件(如图片),然后上传到网站当中,只要执行了这个文件,那么攻击者就会拿到网站的控制权,有兴趣了解的可以百度下 中国菜刀。

好了,我们总结一下,像这种挂马形式上传文件的漏洞,主要还是 服务器上的漏洞, 也就是你现在用一款软件,这个软件本身有bug,而并不是你导致的问题,所以像这类东西,尽量用新点的,别用什么   老版本稳定 这种话来搪塞自己,无论是性能还是安全,版本升级自然有人家升级的意义。像sqlserver2008,就可以通过sql注入的形式故意输错从而获取到表的字段名称。又如 office软件 拥有读写本地文件的权利,  而刚好有个可以注入的office的漏洞,这样人家就可以通过office来对你的本地文件进行操作了,所以电脑上一些漏洞能更新的就更新。

什么是钓鱼网站?

比如我的网站地址是:www.1996v.com,而钓鱼网站的地址是:www.I996v.com

钓鱼网站的地址 和我的地址很相似, 不过我的是 1 而 它的是 英文 I,而网站的内容 也差不多和我网站的内容一样。

通过伪装url和网站内容用来欺骗行为的网站 就是钓鱼网站了。

什么是安全渗透测试?

安全渗透测试是对网站和服务器的全方位安全测试,通过模拟黑客攻击的手法,切近实战,提前检查网站的漏洞。

接下来我将介绍一些安全渗透的软件。

像 Burp Suite、WVS(AWVS),都是类似于Fiddler的软件,可以抓包之类的。

DirBuster目录渗透工具,专门用于探测Web服务器的目录和隐藏文件。

Nmap网络连接端软件,网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。

Pangolin Sql注入工具

AppScan业界领先的web应用安全监测工具(软件界面可以选择中文,不过是收费的)

...还有很多,感兴趣请自行百度。

关于本文

嗯.....关于我这个网站,也就是当时利用业余时间做的。我接下来准备利用业余时间做一个非常优秀的  开源的CMS、CRM自定义模板生成系统,我是一个非常非常上进的年轻人,一个非常非常热爱技术的年轻人,如果你也是和我一样,或者你也是搞web的,想用好的环境来造就自己,不妨可以加下群 .net/web交流群 166843154,一起讨论讨论。

作者:小曾出处:http://www.cnblogs.com/1996V/p/7458377.html 欢迎转载,但任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请给我留言.Net交流群, QQ群:166843154 欲望与挣扎 

[转帖]web安全:通俗易懂,以实例讲述破解网站的原理及如何进行防护!如何让网站变得更安全。的更多相关文章

  1. web安全:通俗易懂,以实例讲述破解网站的原理及如何进行防护!如何让网站变得更安全。

    本篇以我自己的网站为例来通俗易懂的讲述网站的常见漏洞,如何防止网站被入侵,如何让网站更安全. 要想足够安全,首先得知道其中的道理. 本文例子通俗易懂,主要讲述了 各种漏洞 的原理及防护,相比网上其它的 ...

  2. [转帖]web安全:QQ号快速登录漏洞及被盗原理

    web安全:QQ号快速登录漏洞及被盗原理 https://www.cnblogs.com/1996V/p/7481823.html 看了下 QQ的确监听 端口 大神牛B 自己这一块一直没深入学习过.. ...

  3. web安全普及:通俗易懂,如何让网站变得更安全?以实例来讲述网站入侵原理及防护。

    本篇以我自己的网站[http://www.1996v.com]为例来通俗易懂的讲述如何防止网站被入侵,如何让网站更安全. 要想足够安全,首先得知道其中的道理. 本文例子通俗易懂,从"破解网站 ...

  4. Web Service单元测试工具实例介绍之SoapUI

    原文  Web Service单元测试工具实例介绍之SoapUI SoapUI是当前比较简单实用的开源Web Service测试工具,提供桌面应用程序和IDE插件程序两种使用方式.能够快速构建项目和组 ...

  5. Struts 2.x仍然明显落后于时代。 Struts 2.x这一类老牌Web MVC开发框架仅能用于开发瘦客户端应用,无法用来开发对于交互体验要求更高的应用。

    后来我在工作中陆续使用过Struts 1.x和Struts 2.x.我曾经把一个开源的基于Struts 1.x的自助式广告联盟应用移植到Spring MVC,还基于Struts 2.x做过网站开发.S ...

  6. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  7. 关于大型网站技术演进的思考(十九)--网站静态化处理—web前端优化—上(11)

    网站静态化处理这个系列马上就要结束了,今天我要讲讲本系列最后一个重要的主题web前端优化.在开始谈论本主题之前,我想问大家一个问题,网站静态化处理技术到底是应该归属于web服务端的技术范畴还是应该归属 ...

  8. Web前端开发最佳实践(8):还没有给CSS样式排序?其实你可以更专业一些

    前言 CSS样式排序是指按照一定的规则排列CSS样式属性的定义,排序并不会影响CSS样式的功能和性能,只是让代码看起来更加整洁.CSS代码的逻辑性并不强,一般的开发者写CSS样式也很随意,所以如果不借 ...

  9. 【转】关于大型网站技术演进的思考(十九)--网站静态化处理—web前端优化—上(11)

    网站静态化处理这个系列马上就要结束了,今天我要讲讲本系列最后一个重要的主题web前端优化.在开始谈论本主题之前,我想问大家一个问题,网站静态化处理技术到底是应该归属于web服务端的技术范畴还是应该归属 ...

随机推荐

  1. Kafka如何删除topic?

    Kafka如何删除topic? 今天为大家带来“Kafka删除topic原理解析”,希望可以帮到那些苦于无法删除topic的朋友们. 前提条件: 在启动broker时候开启删除topic的开关,即在s ...

  2. Vue指令v-for之遍历输出JavaScript数组,json对象的几种方式

    定义数据: <script> new Vue({ el:"#test", data:{ message:"infor", list:["a ...

  3. DP h回文子串 LCS

    题目背景 IOI2000第一题 题目描述 回文词是一种对称的字符串.任意给定一个字符串,通过插入若干字符,都可以变成回文词.此题的任务是,求出将给定字符串变成回文词所需要插入的最少字符数. 比如 “A ...

  4. python入门学习:9.文件和异常

    python入门学习:9.文件和异常 关键点:文件.异常 9.1 从文件中读取数据9.2 写入文件9.3 异常9.4 存储数据 9.1 从文件中读取数据 9.1.1 读取整个文件  首先创建一个pi_ ...

  5. 转://Oracle PL/SQL 优化与调整 -- Bulk 说明

    一. Bulk 概述 本来只想测试一下Bulk Collect 和update性能的,但发现Bulk 的东西还是很多的,在OTN上搜了一些,整理如下. 1.1 Bulk Binding 和 Bulk ...

  6. Mybatis基础核心类说明

    1:  org.apache.ibatis.mapping.ParameterMapping 为Mybatis参数的抽象表示,包括Java类型与数据库类型以及类型处理器属性名字等等!! 例如: 其中i ...

  7. (四)JavaScript 注释

    JavaScript 不会执行注释. 我们可以添加注释来对 JavaScript 进行解释,或者提高代码的可读性. 单行注释以 // 开头. 本例用单行注释来解释代码: JavaScript 多行注释 ...

  8. 13 python初学(函数)

    函数: 概念:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 创建: def 函数名命名规范: a. 必须以下划线或字母开头 b. 区分大小写 c.不能 ...

  9. Flask中无法在其他函数中查询Sqlachemy的解决办法

    报错信息部分截取: File "D:\python 3.5\lib\site-packages\flask_sqlalchemy\__init__.py", line 912, i ...

  10. 转载 mvc:message-converters简单介绍 https://www.cnblogs.com/liaojie970/p/7736098.html

    mvc:message-converters简单介绍 说说@ResponseBody注解,很明显这个注解就是将方法的返回值作为reponse的body部分.我们进一步分析下这个过程涉及到的内容,首先就 ...