由一道高考题而想到的

2017年的高考已经结束,高中的学弟学妹们丢下沉重的包袱谈恋爱去了。而身边的一群群都去勾搭学弟学妹了。再看看我,唉╮( ̄▽ ̄”)╭,没人疼没人爱。算了,我爱学习,学习使我快乐。

这里写图片描述

2017年的课标1数学卷(理科)我做了一遍,感觉整体难度适中,稳中求变,注重基础(我说这话会不会有人想打我)。不过有很多题出的非常有深度,个人认为做些高考题还是有好处的。

那么这里便分享一道:

这里写图片描述

这里写图片描述

这个呢是规范的解释方法。有几点值得注意:

1.分组求和法。每一组是一个等比数列,而每一组的和又是一个等比数列和常数列,进而可以求和。这种思路并不难想到,在Knuth的《具体数学》一书中,里面解决约瑟夫问题就是用的这种方法。当然我也愿意相信这道题的设计灵感就是来自于《具体数学》,进而显示出出题人的深度。哈?你问我为啥记得这么清楚。说起来很想哭,《具体数学》我自从买回来一年多了,就看完了第一章。(尴尬又不失礼貌的微笑)

2.试商法。这是高考题常用的一种方法,解题中,求出了k和n的关系后。因为n>=14,k为整。那么容易想到从2的5次方开始试。

这里写图片描述

那天我在网上学习车技(咳咳,科技),无意间看到了另外一种解法,简直不要太残酷。

该题来自全国卷Ⅰ,使用该卷的省份中,广东省作为中国第一经济大省经济总量占全国10.7%占据着重要的地位,在命题者心中也有着不一般的分量。关注新闻联播、心系国家大事的同学应该知道:2017年4月4日,习总书记来到广东,对广东工作作出重要批示,希望广东实施创新驱动发展战略,努力在全面建成小康社会、加快建设社会主义现代化新征程上走在前列。再看选项,选项A. 440 意指今年4月4日那天总书记对广东工作的重要批示,因此选择A选项毋庸置疑。so easy(来自大佬的微笑)

这里写图片描述

说句实话,看到这里,我才知道。高考出题人是真的流弊。(手动滑稽)

阅读更多

由网站验证码而想到的……。

06-15

网站验证码的作用是防止暴力破解用户名密码或用机器人灌水。rn主流的写法都是在服务器生成一个随机串,然后将随机数生成图片,发至客户端,然后再将随机数加密用Cookies传到客户端。rn在用户提交回来的信息中检查用户输入数的加密值是否与Cookies中的值相同来验证的。rnrn不过我发现这种写法有相当大的漏洞。其结果是即麻烦了客户而又没有达到目地。rn因为:rn客户端可以重复发送一个相同的post/cookies验证串来达到目地。rnrn举个例子,rn第一步,正常访问rn可以得到一个验证码和一个存在cookies中的验证串。rn第二步,将二个值放入暴破/灌水机器人中。rn这样,机器人就可以每次请求都使用这对正确的值。而验证码系统将失效。rnrn为什么会出现这种情况呢?rn一、因为Web的任意二次请求/响应没有必要的因果关系。所以即使请求需要凭证也无法验证凭证是何时发布的,是发给哪个客户端的。(实际上,这会引起更大的问题,我会在后面讲到)rnrn二、凭证与校验两个值同是发送至各户端;这样就给了客户端伪造的机会。客户端不需要知道凭证与校验之间的转换算法。只需拥有一对正确的凭证/校验数据就够了。rnrn以上二点是所有网络应用都应当注意的问题,可见,如果要相使你的验证码有效,就必须将校验串留在服务器端,而向客户端发送凭证和一个校验串的编号,凭证/校验串使用一次后立即过期。不过随之而来的是你要如何保存校验串和校验串编号。用内存?用数据库?开销都是不小的。rnrnrn然后我们再来看我说的第一点问题。如果你认为验证码的问题你可以忍受的话,那么我下面要说的可能会让你精心构建的网站安全系统有一种崩溃的意像。rn我们都知道HTTP是一种非加密协议,所有HTTP的请求/响应都是在TCP通路上飞速“裸奔”。很早以前就出现过截取Web密码的软件,那时的网络大多基于HUB或是总线网络使得只要在网内的一台机器上使用截取软件就可以得到整个网络内所有的Web密码。而现在大多数网络基于交换机,这种方法显然失去了一部份市场。rn有点跑题,回到我们的问题上来,我们知道ASP/ASP.NET和其它的WEB服务器技术的Session都是依据cookies换句话来说,现在所有Web技术的服务器验证都是将凭据发送到客户机这就出现了我刚才所讲的第二个问题:“凭证可以伪造”!掌握了相应SessionID就得到了服务器权限。rn不过还好,SessionID的值都是随机的并且很长。不太可能被人猜解到,不过不要大意。如果你好心的为了方便你的访客访问你的网站而将其的Id/Key加密后放入cookies后那么问题就出现了。在客户机上是很容易得到访客的Id/Key所计算出的“凭证”的。这样即使不知道具体的密码,也可以在其它地点以这个用户登陆。而且这几个访问的SessionID和Id/Key完全相同,这会出现什么样的后果?你的网站的操作日志完全失效!因为所有的访问凭证都是相同的。你没办法区别哪些请求是真正访客的,哪些请求是攻击者的!rnrn综上所述我总结了以下几点:rn一、需要权限的访问一定需要凭证,而凭证一定需要校验。rn二、校验一定需要保存在服务器上。并且,凭证与校验必须是一次性的。使用后立即过期。rn三、不要相信任何客户端发来的结果,它们都可能是假的!rn四、不要在cookies中长期保存任何凭证。它们只会增加风险。rn五、如果你使用的是Asp/Asp.net请不要在网页上体现访客的SessionID。它们会造成伪造的机会。如果你使用的是其它技术,也一样。rn六、对于需要高度安全的访问验证,请劝告你们的访客,不要在局域网内或使用不安全的代理访问你的网站。rnrn一家之言仅供参考。

没有更多推荐了,返回首页