前两天面试一个remote职位,一个技术型的面试官,问的特别细致。还记得其中一个是关于Github action的安全措施的。这个考官也十分新奇,问的都很抽象。他就问我在Github action中,都采用了什么样的安全措施。我当时也是有点蒙,细节部分当时确实不是很清楚,直接说了句把重要信息都存在了Parameter Store来敷衍了过去。所以也是为了给自己补补课,打算重新再认真总结下WEB系统常见的安全措施。 WEB安全,主要分为两个大块。一个是Application层面,一个是Network层面。Network的话,我自己也还不是特别熟悉,这次先主要总结下Application层面常见的应对措施。 账号安全 CORS Cross Site Scripting SQL Injection ClickJacking POST、GET等Request Method的正确使用 系统信息的加密,hash化 账号安全 主要包含账号注册,login,logout相关部分的处理。账号注册方面:・要注意不能使用太简单的密码,密码要经过加密处理・为了避免恶意注册,要添加2段认证,比如通过email注册login:・页面里的auto complete最好关闭・如果使用java的session管理功能的话,login前后的JSESSIONID务必要刷新・为了防止暴力破解,要加入login尝试次数限制的机制logout:・logout不只是页面的迁移,之前的认证key也需要进行invalidate处理 CORS 使用API时有时会需要跨域,最好通过ALB的设置解决,商业环境ajax的跨域设置最好要关闭。Spring的话可以设置某些指定环境才打开CORS。 Cross Site Scripting 通过往数据库里写入script,然后在画面显示的时候去执行这些script。以用来窃取用户本地的信息。