Java Web技术经验总结(十七)

好久不见

  1. 使用httpOnly标识避免XSS攻击,参见:说说HttpOnly Cookie的作用。解决XSS攻击,有两种解决方法:1)服务端对提交上来的留言内容做过滤,把恶意代码过滤掉;2)让恶意javascript代码读取不到我们种的cookie。httpOnly的角色是第二种。
  2. lombok使用,参考:Lombok:让Java代码更优雅
//下面是类级别注解
@NoArgsConstructor //相当于定义1个无参构造函数
@Data //相当于定义了类里所有属性的get set eqauls hashCode toString
@RequiredArgsConstructor //一般和@NonNull注解配合使用,表示定义1个包含类里所有声明@NonNull注解的构造函数
@Accessors(fluent = true) //表示实体类可以用fluent风格去调用,例如:new Result().success(true).data(123); 这句话里success函数data 函数都是声明注解以后自动生成的,并且都返回当前类自身。
@FieldDefaults(level = AccessLevel.PRIVATE) //所有属性默认访问级别都是private ,省的挨个属性去写了,如果有10个属性,9个都是private ,1个是public ,可以单独覆盖.如果单独那个是包级别访问权限的,可以通过加上@PackagePrivate注解去覆盖
@UtilityClass //声明这个注解,会自动为该类生成1个私有无参构造函数,构造函数内部会直接抛异常,表示这个类是1个工具类,无法实例化
@Log4j2 //声明log4j2注解,会自动为该类创建1个 log属性,避免手动创建,lombok还支持slf4j,log4j1.x commons log ,jdk原生的log,都会有相应的注解支持 .
  1. Java Web安全编码,参见:Web 安全问题总结
  • 安全参数:HttpOnly、Secure Cookie
  • 防止页面被嵌入iframe放到其他页面,在Header中添加如下代码
/*
    X-Frame-Options:
        DENY         prevent any site from framing the page.
        SAMEORIGIN   allows only sites from the same domain to frame the page.
    */
    response.setHeader("X-Frame-Options","SAMEORIGIN");
  • CSRF:跨站请求伪造,利用一次请求令牌,在服务端进行验证
  • 会话迷恋:在登录成功后一定要重新生成新的Session Id
  1. 使用awk调换文件中某两列的位置
awk -F ',' '{print $3"," $2"," $1}' source_file.txt > source_file_revert.txt
  1. 如何控制一个外部调用的运行时间,自己做超时重试?
  1. fastjson中提供了一个TypeReference类,用于处理反序列化时候的泛型定义。参考资料:TypeReference;例子代码见:TypeReferenceExample 7.使用Java8的并行流,需要注意线程安全问题,参考:https://my.oschina.net/7001/blog/1475500

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android群英传

NDK Maping 发布啦

1102
来自专栏小李刀刀的专栏

[译]Laravel 5.0 之命令及处理程序

本文译自 Matt Stauffer 的系列文章. ---- 本文中涉及的新功能都是关于 Commands 的,这些特性在 Laravel 旧版本中已经有了,但...

3596
来自专栏木木玲

Netty in Action ——— Netty的组件和设计

1674
来自专栏coderhuo

虚拟内存探究 -- 第四篇:malloc, heap & the program break

这是虚拟内存系列文章的第四篇,也是最后一篇。 本文主要介绍malloc和heap相关知识,以便回答上一篇文章结尾提出的一些问题:

1731
来自专栏JavaEdge

Java神奇lombok创建实体

Lombok对于Java开发者来说应该是比较中意的,Lombok框架提供了很多编码遍历,但是也降低了代码的阅读力。下面我们看看在Idea开发工具中该怎么使用Lo...

4147
来自专栏程序猿DD

Spring Batch入门篇

Spring Batch,一个很多人还觉得陌生的框架,它是Spring Cloud Task的基础,主要用来实现批量任务的处理。该框架在国内的使用非常少,所以一...

2765
来自专栏Java后端技术

Java发送邮件初窥

  最近朋友的公司有用到这个功能,之前对这一块也不是很熟悉,就和他一起解决出现的异常的同时,也初窥一下使用Apache Common Email组件进行邮件发送...

1422
来自专栏Java3y

Spring入门这一篇就够了

前言 前面已经学习了Struts2和Hibernate框架了。接下来学习的是Spring框架…本博文主要是引入Spring框架… Spring介绍 Spring...

2.4K6
来自专栏世界第一语言是java

网站调用支付宝进行支付-Java后台调用支付宝支付

6893
来自专栏大数据平台TBDS

Flume-Hbase-Sink针对不同版本flume与HBase的适配研究与经验总结

导语:本文细致而全面地讲解使用flume输出数据到HBase的三种不同 Flume-Hbase-Sink 之间的差异性,以及技术细节。并且透彻而全面地总结了不同...

2K12

扫码关注云+社区

领取腾讯云代金券