安全
文章平均质量分 95
一只打酱油De篴
这个作者很懒,什么都没留下…
展开
-
ReentrantLock(重入锁)
ReentrantLock先看一段程序:public class DemoT { // 定义一个共享变量 private static int count = 0; // 用来操作共享变量的方法 public static void inc() { try {// 为了展示出多线程同时操作同一数据会出现问题。如果去掉之后可能会正常计算出数据 Thread.sleep(1);原创 2020-06-30 11:19:33 · 151 阅读 · 0 评论 -
多线程线程安全之保证可见性
在单线程的环境下,如果向一个变量先写入一个值,然后在没有写干涉的情况下读取这个变量的值,那这个时候读取到的这个变量的值应该是之前写入的那个值。这本来是一个很正常的事情。但是在多线程环境下,读和写发生在不同的线程中的时候,可能会出现:读线程不能及时的读取到其他线程写入的最新的值。这就是所谓的可见性 1.引出问题 一个测试代码: public static boolean stop = false; public static void main(String[] args) t原创 2020-06-29 17:24:07 · 1245 阅读 · 0 评论 -
java-锁得升级(概念):偏向锁--轻量级锁--重量级锁
偏向锁:在大多数情况下,锁不仅仅不存在多线程的竞争,而且总是由同一个线程多次获得。在这个背景下就设计了偏向锁。偏向锁,顾名思义,就是锁偏向于某个线程。 当一个线程访问加了同步锁的代码块时,会在对象头中存储当前线程的ID,后续这个线程进入和退出这段加了同步锁的代码块时,不需要再次加锁和释放锁。而是直接比较对象头里面是否存储了指向当前线程的偏向锁。如果相等表示偏向锁是偏向于当前线程的,就不需要再尝试获得锁了,引入偏向锁是为了在无多线程竞争的情况下尽量减少不必要的轻量级锁执行路径。(偏向锁的目的是消除数据在原创 2020-06-28 17:23:47 · 224 阅读 · 0 评论 -
漏洞CSRF修改个人资料和编辑器存储型xss漏洞
在某个产品上,客户的安全部门测试出了两个漏洞,一个是CSRF修改个人资料另一个是编辑器存储型xss漏洞先说CSRF,这个大概情况是这样: 分为两个用户,一个正常用户(A),一个非法用户(X)。 A正常的访问系统,点击编辑用户信息,修改,提交,这时会向服务器发送一条请求。这时X拦截到了这条请求,使用工具编辑信息,并且发送向服务端。 服务端会分别正常执行A X 两个用户的请求。 ...原创 2018-03-28 22:22:49 · 599 阅读 · 0 评论 -
服务后端实现 多数据源
这里主要叙述多数据源相关配置和代码,(注:和多数据源无关的 类似与事务/引入,这些就不啰嗦了,可以查看其他类似博文)1.首先是启动文件:在 "spring-mvc.xml" 或者其他 相关项目启动就会运行的 配置文件中 配置数据源 ,这里配置了两个数据源,分别为"dataSource_jeecg",和"dataSource_two",可以两者之前进行切换, <!-- 引入...原创 2019-01-21 14:02:58 · 444 阅读 · 0 评论 -
重要.唯一字段,怎么确保获取"唯一"流水号
流水号,一般是组成编号的一部分,用来实现计数,以及使编号唯一,一:采用redis.incr获取可以采用使用redis的 "incr"方法获取,不过有个局限性,就是redis不可删除缓存,如果删除掉之后,会将编号清零,重新计数(附redis工具类),只要传入的"str"不变,获取到的数字会一直递增public class RedisUtil { private stat...原创 2019-01-21 17:29:31 · 1511 阅读 · 0 评论