Java工程师应该知道的Web安全

Java开发很大的一个应用场景就是Web,即使不是Web, 很多时候也是采用的和Web类似的处理方式。因此了解目前常见的Web安全问题并做防范是非常关键的。

Web安全问题,从大的方面可以分为:

  • 客户端安全:通过浏览器进行攻击的安全问题。
  • 服务端安全:通过发送请求到服务端进行攻击的安全问题。

常见的客户端安全问题有:

  • 跨站脚本攻击
  • 跨站点请求伪造

常见的服务端安全问题有:

  • SQL注入
  • 基于约束条件的SQL攻击
  • DDOS攻击
  • Session fixation

本文主要针对这些问题进行讲述。

Java工程师应该知道的RPC

RPC, Remote Procedure Call,故名思议就是远程过程调用,一般都有跨语言支持。大规模分布式应用中普遍使用RPC来做内部服务、模块之间的数据通信,还有助于解耦服务、系统的垂直拆分,使得系统可扩展性更强,并能够让Java程序员用与开发本地程序一样的语法与方式去开发分布式应用程序。

RPC分为客户端(服务调用方)和服务端(服务提供方),都运行在自己的JVM中。客户端只需要引入要使用的接口,接口的实现和运行都在服务端。RPC主要依赖的技术包括序列化、反序列化和数据传输协议。是一种定义与实现相分离的设计:

目前Java使用比较多的RPC方案主要有RMI、Hessian、Dubbo以及Thrift。

这里需要提出的一点就是,这里的RPC主要指的内部服务之间的调用,因此虽然RESTful也可以用于内部服务间的调用(跨语言、跨网段、跨防火墙),但其主要用途还是为外部系统提供服务,因此本文没有将其包含在内。

我是科蜜,20年的...

5:30左右突然惊醒,拿起手机一看有同学给我发微信说科比挂了。我大大的问号,赶快看了一下朋友圈和网易新闻,已经有人发出了国外网站正式的报道。。。心里顿时五味陈杂,一时不知道如何是好。一个陪伴了自己整个少年时代的偶像说没就没了,还是以这种意外的方式,相信好胜心那么强的他也是非常不甘心的。也许有人会说,人家这么一个超级巨星,你们这些粉丝矫情啥,人家都不认识你。确实,我的存在对他来说是无所谓的,但是他对我的意义却是不一般,我也相信他对于无数他的粉丝都有不一样的意义。

我的2019

和去年一样,本文来自自己给部门的公开信。内容经过脱敏。


2020年已经过去了快一个月。回顾2019年,真的感谢大家,总体来看,部门的全年产出是符合预期的,也获得了其他需求部门的高度好评。不仅仅支撑了微鲤看看、广告平台、用户增长等业务相关系统的快速迭代,也不断地在探索运维基础设施、前端基础设施、大数据平台、推荐系统、公共组件、技术中间件并取得了一些令人印象深刻的成果。

要求了大家做全年的总结和新的一年的规划,我自己也从工作、学习和生活三个方面来总结一下我自己的2019年。

《管理的常识》学习笔记

作者是陈春花教授,既是企业管理教授也有企业高管经历,是国内管理大师级的人物,写了非常多的管理著作,其公众号“春暖花开”会经常分享她对管理的一些思考,非常值得订阅。《管理的常识》此书主要讲了管理理论中的一些常识,包括了管理的概念、组织、组织结构、领导、激励、决策等。让自己印象深刻的包括管理最终只以成就做为衡量标准;职能部门是不能具有权利的;群体决策并不是最好的决策方式,而是风险较小的决策方式。推荐企业管理者阅读此书。

今年随着公司人员规模的不断扩大,自己越发意识到了管理的重要性。尤其对于技术管理者来说,程序员的思维和管理者的思维有很多地方是截然不同的,如果不做好认知的改变和思维的转变,很容易用惯性思维来做事,那么一个非常优秀的研发工程师很可能会成为一个非常不合格的管理者。所以,自己一直在寻找管理的书籍、课程来学习。其中,《管理的常识》这本书是极客邦TGO寄来的礼物,仔细阅读了一下,还是有不少启发的。

技术琐话

日常的工作学习中,经常会看到好的知识点,对自己有提示的一句话,或者是自己突然想通了一件事情。这里以“技术琐话”作为主题来聚合:技术琐话

中台简谈

面对新事物,先接纳,再判断。不要轻易就否定,即使经过自己的思考后确实没啥价值,这期间的思考过程也是一种知识梳理和思维锻炼。

2019年技术圈最火的一个词非“中台”莫属了。联想到公司已经在持续做的平台化,其实会让人感到混乱。平台和中台有啥区别?有了中台,那么前台和后台又指的什么?本文是自己在调研中台概念中沉淀出来的一些思考。

数据传输之RESTful

REST,全称表现层状态转移(Representational State Transfer), 指的是资源在网络中以某种表现形式进行状态转移,是一种架构风格。其描述的是在网络中Client和Server的一种交互形式。简单来说就是用HTTP URL来定位资源,用HTTP的各种method来描述操作。其关键的三个概念如下:

  • Resource: 资源,主要指的是数据。
  • Representational:数据的表现形式,如JSON、XML、HTML等。
  • State Transfer:状态变化, 通过HTTP method来描述。

REST经常被用来规范API的设计以及数据传输的格式,可以统一给各种客户端提供接口,包括Web、iOS、Android和其他的服务。REST不需要显式的前端页面,只需要按照格式返回数据即可。符合REST风格的API称为RESTful API,符合RESTFul规范的架构称为RESTful架构。如下图所示:

如何培养解决问题的意识

解决问题其实并不是最终的目的,需要加一个修饰词成为有效地解决问题,这才是最终的目的。那么如何有效地解决问题呢?这是有一些方法论做指导的。要培养解决问题的能力,需要首先掌握这些方法论。解决问题分为三步走:识别问题、分析问题、解决问题。