不帅 发表于 2015-1-18 11:08:21

发布一篇Rails平安导读【三】

令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。
四 重定向和文件
另外一类平安成绩是围饶在web使用里重定向和文件的利用。
4.1重定向
web使用里的重定向是一个被低估的craker工具:它不但可让用户失落进一个陷进网站,并且还能够制造一个完整的打击。
当用户被同意由一个URL重定向的时分,它由大概就是个毛病。最分明的打击是将用户重定向到一个和原始页面千篇一律的假页面。这个所谓的‘垂纶打击’经由过程给用户发送一封包括一般的不让人起疑的链接的email,经由过程XSS体例往web使用里打针这个歹意链接大概把链接放到一个子虚的网站(域名看起来差未几,页面也不异的站点)。它是绝不让人嫌疑的,由于这个链接的肇端URL是这个一般的web使用,指向歹意站点的URL都被埋没在重定向参数里:http://www.ckuyun.com/site/redirect?to=www.attacker.com. 这里由个例子:
deflegacy
  redirect_to(params.update(:action=>main))
end
假如用户会见legacy这个action,将会被重定向到mailaction。如许做的企图是为了保护legacy的参数,并把这些参数传到mainaction。可是,假如它包括了一个hostkey,就会被打击者使用。
http://www.ckuyun.com/site/legacy?param1=xy&param2=23&host=www.attacker.com
假如它在url的尾部,将很难被注重到,用户就被神不知鬼不觉的重定向到了打击者的页面。一个复杂的对策是,在legacyaction里只包含预期的参数(白名单的举措,不是作废一切意向不到的参数)。假如你重定向到一个网址,你必要用白名单或是正则表达式反省它。
4.1.1 Self-containedXSS(自载的xss打击)
另外一个重定向和self-containedXSS打击是经由过程firefox和opera里利用的一种数据协定。该协定间接在扫瞄器里显现其内容,可使任何内容,从html,javascript到图片。(这不是一个毛病,而是一个功效)
data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K
这个例子是一个Base64编码的显现复杂动静框的javascript。在一个重定向的URL里,一个打击者能用它内里的歹意代码重定向这个url。
更具体的打击道理能够参看这里:http://www.gnucitizen.org/blog/self-contained-xss-attacks/
对策:donotallowtheusertosupply(partsof)theURLtoberedirectedto.(说假话,这里我没看分明)
4.2文件上传
-确保文件前次不掩盖主要的文件,和同步的媒体文件历程。
良多web使用同意用户上传文件,用户能够选择的文件名字,应当随时被过滤,由于打击者能够用歹意的文件名掩盖服务器上恣意文件。如果你在/var/www/uploads存储上传文件,用户输出一个文件名:../../../etc/passwd,它大概掩盖一个主要文件。
当过滤用户输出的文件名时,不要试图往删除歹意的部分。想想,假如往失落一切的../,打击者输出....//,那末了局就成了../。最好是用白名单的体例,用一套可承受的字符往反省文件名的无效性。一旦它不是一个无效的文件名,则回绝它(或交换它),可是不删除它们。这有一份来自attachment_fu插件的文件名清单:

defsanitize_filename(filename)returningfilename.stripdo|name|#NOTE:File.basenamedoesntwork

rightwithWindowspathsonUnix#getonlythefilename,notthewholepathname.gsub!/^.*(|/)/,

#Finally,replaceallnonalphanumeric,underscore#orperiodswithunderscore

name.gsub!/[^w.-]/,_endend<p>
恰恰证明了java的简单,要不怎么没有通过c/c++来搞个这种框架?

若相依 发表于 2015-1-29 11:43:19

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

小妖女 发表于 2015-2-1 21:00:00

是一种语言,用以产生「小应用程序(Applet(s))

山那边是海 发表于 2015-2-7 15:02:34

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。

再现理想 发表于 2015-2-22 08:32:00

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

愤怒的大鸟 发表于 2015-3-6 23:46:58

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

灵魂腐蚀 发表于 2015-3-13 22:43:22

是一种语言,用以产生「小应用程序(Applet(s))

变相怪杰 发表于 2015-3-20 20:54:27

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
页: [1]
查看完整版本: 发布一篇Rails平安导读【三】