`
文章列表
http://www.cnblogs.com/LBSer/p/4715395.html   前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。   上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量必须减1吧,怎么保证?!在搜索广告系统中,当用户点击某广告后,除了在点击事件表中增加一条记录外,还得去商家账户表中找到这个商家并扣除广告费吧,怎么保证?!等等,相信大家或 ...
spring单例在高并发下可能出现的错误   spring单例在高并发下可能出现的错误: 首先,只有当注入的对象是无状态的幂等的才可以保证执行前后不被修改,否则执行一次之后单例对象就会发生改变,在下次执行有肯能造成结 ...
对称加密算法加密速度快,人们用它来加密较长的文件,然后用非对称加密算法来给文件密钥加密,解决了对称加密算法的密钥分发问题。
若已正确判断出图片类型,防止了绝大多数恶意图片上传。但是若通过修改文件流的方法,给一张本身合法的图片中强行写入一些恶意代码,或者病毒代码,这样前面的方法仍然能够顺利通过,因为它本身是张正确格式的图片, ...

CSRF攻击方式

一.CSRF是什么?   CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。 二.CSRF可以做什么?   你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发 ...
sql预编译 定义 sql 预编译指的是数据库驱动在发送 sql 语句和参数给 DBMS 之前对 sql 语句进行编译,这样 DBMS 执行 sql 时,就不需要重新编译。 为什么需要预编译 JDBC 中使用对象 PreparedStatement 来抽象预编译语句,使用预编译 预编译阶段可以优化 sql 的执行。

XSS攻击及防御

       本文来自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/17027893,转载请注明。       XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。 XSS攻击        XSS攻击类似于SQL ...
 2016-04-06 58沈剑 架构师之路 本文曾在“架构师之路”上发布过,近期支援Qcon-AS大会,在微信群里分享了该话题,故对原文进行重新整理与发布。  
这里所说的表示不同文件类型的魔术数字,指的是文件的最开头的几个用于唯一区别其它文件类型的字节,有了这些魔术数字,我们就可以很方便的区别不同的文件,这也使得编程变得更加容易,因为我减少了我们用于区别一个文件的文件类型所要花费的时间。 比如,一个JPEG文件,它开头的一些字节可能是类似这样的”ffd8 ffe0 0010 4a46 4946 0001 0101 0047 ……JFIF…..G“,这里”ffd8“就表示了这个文件是一个JPEG类型的文件,”ffe0“表示这是JFIF类型结构。 以下例出的是一些我们常见的文件类型,以及它用于判断这种文件的类型的几个开始字节及所对尖的ASCII数字: ...
判断文件是否为图片,仅通过后缀名判断很不全面,如果把一个txt文件后缀改成gif都会被认为是图片,通过java可以判断文件本身是否为图片,可以防止用木马病毒伪装成图片。图片上传时,同时要限制上传文件大小,以防对服务器可用性造成冲击。    package com.tx.img;   import java.io.File; import java.io.IOException; import java.util.Iterator;   import javax.imageio.ImageIO; import javax.imageio.ImageReader; impor ...
将图片加上盐值字符串,使用MD5信息摘要算法生成图片的数字指纹,将数字指纹加到图片最后。验证时,先读取图片末尾的数字指纹,再通过MD5摘要算法,对图片加盐字符串计算出数字指纹,判断数字指纹是否相同,如果不同,则图片被篡改。   package com.tx.img;   import java.io.File; import java.io.FileInputStream; import java.io.RandomAccessFile; import java.math.BigInteger; import java.nio.channels.FileChannel; im ...
出现这样的问题,用notepad改格式为无bom,utf-8格式,即可。
1、什么是分布式事务 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。 2、分布式事务的产生的原因 2.1、数据库分库分表 当数据库单表一年产生的数据超过1000W,那么就要考虑分库分表,具体分库分表的原理在此不做解释,以后有空详细说,简单的说就是原来的一个数据库变成了多个数据库。这时候,如 ...
什么是幂等性 幂等性应用在软件系统中,我把它简单定义为:某个函数或者某个接口使用相同参数调用一次或者无限次,其造成的后果是一样的,在实际应用中一般针对于接口进行幂等性设计。举个栗子,在系统中,调用方A调用系统B的接口进行用户的扣费操作时,由于网络不稳定,A重试了N次该请求,那么不管B是否接收到多少次请求,都应该保证只会扣除该用户一次费用。 幂等性设计 幂等性一般应用于协议设计,TCP协议支持幂等吗?答案是肯定的,在网络不稳定时,操作系统可以肆无忌惮的重发TCP报文片段。TCP协议能够保证幂等的核心在于sequence number字段,一个序列号的在较长的一段时间内均不会出现重复。对于 ...
项目上右键,properties, 找java build path,切到libraies标签,将爆红的jdk编辑一下,选用你需要的jdk版本,一般1.6.我看你类的httpServlet报错,也是这个页面,右边 add library ,找server runtime,如果你eclipse创建了tomcat的server ,应该能看到该tomcat,否则你就先建一个(应该很简单了,window-->preferenct-->server-->runtime environment,然后add一个,选你tomcat路径。)反正libraries标签里面东西你搞好了,一般没问题的 ...
Global site tag (gtag.js) - Google Analytics