当前位置: 首页 > news >正文

网站建设实训报告的内容怎么写莱芜新闻最新消息

网站建设实训报告的内容怎么写,莱芜新闻最新消息,深圳企业网站制作中心,做网站策划一个专利的主题宣传在前后端分离的项目中,通过session和cookie的通信一般就失去效益了,即使这么做了也会产生著名的漏洞问题CSRF(Cross-site request forgery), 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。因…

在前后端分离的项目中,通过session和cookie的通信一般就失去效益了,即使这么做了也会产生著名的漏洞问题CSRF(Cross-site request forgery), 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。因为cookie依赖于sessionid,我们可以在浏览器中f12看到具体情形,恶意攻击者就可以伪造这个id进行跨域请求,会产生非常严重的后果。
所以目前后端分离的项目如果传递信息,一般有两种思路,一种是在后端开启共享存储的内存,前端后端都可以存数据进去,常见的方式是线程间通信的一种实现即Threadlocal,但这种方式虽然优雅仍然避免不了内存泄漏的问题,简单来讲hashmap的key没了但是value在导致这块内存无法被回收。第二种是使用token,之前几乎所有的前后端项目都采用了这种交互方式,后端生产token,前端缓存token,同一个用户每次请求都是拿着同一个token去后端验证,但是token有一个很大的问题,那就是签名问题,很难标注token的具体信息,项目如果后端分布式,token的验证问题也十分繁琐。所以引入jwt做中介。Jwt解决了身份校验的问题,但后端如果分布式,jwt的验证总是要请求认证服务也是非常繁琐的,为了解决这个问题引入了RSA非对称加密的思路,只有认证服务有私钥其余的服务都是公钥,公钥加密私钥解密,其余服务不需要验证内容是否正确只需要使用公钥验证格式是否符合RSA的规范。
Jwt这样看来是一个非常好的信息传递包裹,但是知道了共享内存不够优秀,只有另一种方式来进行前后端通信了,那就是第三方数据库。
我们常说的缓存redis就可以作为很好的工具。
但是redis并不能存储对象,redis已经应用相当广泛了,但redis本身并没有直接存储对象的方法,我们可以通过转换对象的方式来存储对象。
如果redis存储对象需要序列化:
方案一:序列化对象为二进制
使用redis接口:

jedis.get(byte[] key)
jedis.set(byte[] key, byte[] value)

至于序列化方式,我们有很多种选择,比如:Java serialize,Protobuf,或者自己手动序列化都行

public byte[] serialize(Object obj);public Object unSerialize(byte[] bytes);

方案二:序列化为字符串
使用redis接口:
jedis.get(String key);

jedis.set(String key, String value);
序列化为字符串,我们也有很多选择:Json(Jackson,FastJson),Xml等方式
方案三:转换对象为map
使用redis接口:
jedis.hgetAll(String key);

jedis.hmset(String key, Map<String,String> values);
知道了只有序列化后才能使用redis存储对象,实际生产中可以使用第三方工具进行序列化,比如fastjson,jackson等。
本例中使用fastjson封装成生产中的redis工具:
 

@Configuration
@ConditionalOnClass(RedisOperations.class)
@EnableConfigurationProperties(RedisProperties.class)
public class RedisConfig {
@Bean("redisTemplate")
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<Object, Object> template = new RedisTemplate<>();
//使用fastjson序列化
FastJsonRedisSerializer fastJsonRedisSerializer = new FastJsonRedisSerializer(Object.class);
// value值的序列化采用fastJsonRedisSerializer
template.setValueSerializer(fastJsonRedisSerializer);
template.setHashValueSerializer(fastJsonRedisSerializer);
// key的序列化采用StringRedisSerializer
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer()); 
template.setConnectionFactory(redisConnectionFactory);
return template;
} 
@Bean
@ConditionalOnMissingBean(StringRedisTemplate.class)
public StringRedisTemplate stringRedisTemplate(
RedisConnectionFactory redisConnectionFactory) {
StringRedisTemplate template = new StringRedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
return template;
} 
}


当我们在项目中进行应用时只需要@Autowired就可以了,非常方便。
当然如果用redis工具取对象还需要反序列化,fastjson举例即JSON.pareObject(rts.opsForValue().get(key).toString(),xxx.class).

http://www.yayakq.cn/news/856915/

相关文章:

  • 模板网站也可以做优化如何建一个论坛网站
  • 一般做企业网站需要什么工程管理软件
  • 企业网站建设公司价格建设网站翻译英文翻译
  • 商务网站建设与维护 课件大连做企业网站的公司
  • 雄县哪做网站选择做印象绍兴网站的原因
  • 永川网站建设公司企业管理网络图
  • 设计外贸网站内蒙古做网站公司
  • 沈阳做手机网站的公司nova wordpress主题
  • 招聘类网站建设深圳定制网站制作报价
  • 网站建设情况调查表有没有做头像的网站
  • 能下载的网站推广平台怎么做
  • 网站备案个人可以做吗python 网站开发入门
  • 邯郸教育行业网站建设手机商城 手机网站建设多少钱
  • 网站开发 知识产权做教育导航的网站
  • 网站安全建设架构网页美工设计招聘
  • 一般纳税人网站建设多少税率苏州工程网站建设
  • wordpress注册默认密码忘记关键词优化外包
  • 重慶网站开发公司没有备案了网站
  • 觉 网站wordpress 动静
  • 婚庆网站建设需求分析wordpress 创建配置文件
  • 酷炫网站源码湖北做网站的
  • 网站建设与管理量化考细则网站排名突然下降
  • 设计师工作室网站h5制作网页
  • 可以做动画的网站移动电商网站开发需求
  • 做暧暧小视频网站交互动效库 网站
  • 如何进行网站域名解析企业网站建设策划
  • 免费自做网站网站关键词排名怎么提升
  • 长春网站建设880元注册网站怎么注销
  • 丽水建设局门户网站广西建设行政主管部门官方网站
  • 竞价页面网站做优化wordpress google广告