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

北京网站优化培训网站策划建设方法

北京网站优化培训,网站策划建设方法,简历网站推荐,wordpress加模板转载自 这些保护Spring Boot 应用的方法#xff0c;你都用了吗#xff1f; Spring Boot大大简化了Spring应用程序的开发。它的自动配置和启动依赖大大减少了开始一个应用所需的代码和配置量#xff0c;如果你已经习惯了Spring和大量XML配置#xff0c;Spring Boot无疑是…转载自   这些保护Spring Boot 应用的方法你都用了吗 Spring Boot大大简化了Spring应用程序的开发。它的自动配置和启动依赖大大减少了开始一个应用所需的代码和配置量如果你已经习惯了Spring和大量XML配置Spring Boot无疑是一股清新的空气。 Spring Boot于2014年首次发布自那以后发生了很多变化。安全性问题与代码质量和测试非常相似已经日渐成为开发人员关心的问题。本文目的是介绍如何创建更安全的Spring Boot应用程序。 1.在生产中使用HTTPS 传输层安全性TLS是HTTPS的官方名称你可能听说过它称为SSL安全套接字层SSL是已弃用的名称TLS是一种加密协议可通过计算机网络提供安全通信。其主要目标是确保计算机应用程序之间的隐私和数据完整性。 过去TLS / SSL证书很昂贵而且HTTPS被认为很慢现在机器变得更快已经解决了性能问题Lets Encrypt提供免费的TLS证书,这两项发展改变了游戏并使TLS成为主流。 截至2018年7月24日Google Chrome 将HTTP网站标记为“不安全”。虽然这在网络社区引起了相当多的争议。知名安全研究员特洛伊亨特创建了一个为什么不适用HTTPS跟踪不使用HTTPS的大型网站的网站。 Let’s Encrypt TLS证书可以自动化生成和更新由于他们是免费的所以没有理由不去做Spring Boot Secured By Let’s Encrypt的加密是如何做到这一点的有用指南。 要在Spring Boot应用程序中强制使用HTTPS您可以扩展WebSecurityConfigurerAdapter并要求安全连接。 Configuration public class SecurityConfiguration extends WebSecurityConfigurerAdapter {Overrideprotected void configure(HttpSecurity http) throws Exception {http.requiresChannel().requiresSecure();} } 另一个重要的事情是使用HTTP严格传输安全性HSTS。HSTS是一种Web安全策略机制可以保护网站免受协议降级攻击和cookie劫持。服务器使用名为Strict-Transport-Security的响应头字段将HSTS策略传送到浏览器。Spring Security默认发送此标头以避免在开始时出现不必要的HTTP跃点。   2.使用Snyk检查你的依赖关系 你很可能不知道应用程序使用了多少直接依赖项这通常是正确的尽管依赖性构成了整个应用程序的大部分。攻击者越来越多地针对开源依赖项因为它们的重用为恶意黑客提供了许多受害者确保应用程序的整个依赖关系树中没有已知的漏洞非常重要。 Snyk测试你的应用程序构建包标记那些已知漏洞的依赖项。它在仪表板在应用程序中使用的软件包中存在的漏洞列表。 此外它还将建议升级的版本或提供补丁并提供针对源代码存储库的拉取请求来修复您的安全问题。Snyk还确保在你的存储库上提交的任何拉取请求通过webhooks时都是通过自动测试的以确保它们不会引入新的已知漏洞。 每天都会在现有项目和库中发现新的漏洞因此监控和保护生产部署也很重要。Snyk拍摄快照并监控你的部署以便在发现新漏洞时你可以通过JIRAslack或电子邮件自动收到通知并创建拉取请求以提供新漏洞的升级和补丁。 Snyk可通过Web UI和CLI获得因此您可以轻松地将其与CI环境集成并将其配置为在存在严重性超出设定阈值的漏洞时中断构建。 你可以免费使用Snyk进行开源项目或使用有限数量的私有项目。   3.升级到最新版本 定期升级应用程序中的依赖项有多种原因。安全性是让您有升级动力的最重要原因之一。该start.spring.io起始页面采用了最新的spring版本的软件包以及依赖关系在可能的情况。 基础架构升级通常不如依赖项升级具有破坏性因为库作者对向后兼容性和版本之间的行为更改的敏感性各不相同。话虽如此当你在配置中发现安全漏洞时您有三种选择升级修补程序或忽略。 在对应用程序进行必要的更改以使用较新版本之后就应用程序的整体运行状况而言升级是最安全的。   4.启用CSRF保护 跨站点请求伪造(Cross-Site Request Forgery )是一种攻击强制用户在他们当前登录的应用程序中执行不需要的操作。如果用户是普通用户一个成功攻击可能涉及请求的状态更改如转移资金或更改其电子邮件地址如果用户具有提升管理员的权限则CSRF攻击可能会危及整个应用程序。 Spring Security具有出色的CSRF支持如果您正在使用Spring MVC的form:form标签或Thymeleaf EnableWebSecurity默认情况下处于启用状态CSRF令牌将自动添加为隐藏输入字段。 如果你使用的是像Angular或React这样的JavaScript框架则需要配置CookieCsrfTokenRepository以便JavaScript可以读取cookie。 EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter {Overrideprotected void configure(HttpSecurity http) throws Exception {http.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());} } 如果你正在使用Angular这就是你需要做的。如果您使用的是React则需要读取XSRF-TOKENcookie并将其作为X-XSRF-TOKEN标题发回。 当请求通过HTTPS发生时Spring Security会自动加入一个secure标识到XSRF-TOKENcookie 。Spring Security对于CSRF cookie不使用SameSitestrict 的标志但它在使用Spring Session或WebFlux会话处理时会使用这对会话cookie有意义因为它有助于识别用户但是没有为CSRF cookie提供太多价值因为CSRF令牌也需要在请求中。 5.使用内容安全策略防止XSS攻击 内容安全策略CSP是一个增加的安全层可帮助缓解XSS跨站点脚本和数据注入攻击。要启用它你需要配置应用程序以返回Content-Security-Policy标题。你还可以在HTML页面中meta http-equivContent-Security-Policy使用标记。 Spring安全性默认提供了许多安全标头 Cache-Control: no-cache, no-store, max-age0, must-revalidate Pragma: no-cache Expires: 0 X-Content-Type-Options: nosniff Strict-Transport-Security: max-age31536000 ; includeSubDomains X-Frame-Options: DENY X-XSS-Protection: 1; modeblock Spring Security * 默认情况下不添加 CSP。你可以使用以下配置在Spring Boot应用程序中启用CSP标头。 EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter {Overrideprotected void configure(HttpSecurity http) throws Exception {http.headers().contentSecurityPolicy(script-src self https://trustedscripts.example.com; object-src https://trustedplugins.example.com; report-uri /csp-report-endpoint/);} } CSP是防止XSS攻击的良好防御请记住打开CSP能让CDN访问许多非常古老且易受攻击的JavaScript库这意味着使用CDN不会为安全性增加太多价值。 你可以在securityheaders.com测试你的CSP标头是否有用。 6.使用OpenID Connect进行身份验证 OAuth 2.0是行业标准的授权协议。它使用scope来定义授权用户可以执行的操作的权限。但是OAuth 2.0不是身份验证协议并且不提供有关经过身份验证的用户的信息。 OpenID ConnectOIDC是一个OAuth 2.0扩展提供用户信息除了访问令牌之外它还添加了ID令牌以及/userinfo可以从中获取其他信息的端点它还添加了发现功能和动态客户端注册的端点。 如果使用OIDC进行身份验证则无需担心如何存储用户、密码或对用户进行身份验证。相反你可以使用身份提供商IdP为你执行此操作你的IdP甚至可能提供多因素身份验证MFA等安全附加组件。 要了解如何在Spring Boot应用程序中使用OIDC请参阅Spring Security 5.0和OIDC入门。要总结如何使用它你需要向项目添加一些依赖项然后在application.yml文件中配置一些属性。 spring:   security:     oauth2:       client:         registration:           okta:             client-id: {clientId}             client-secret: {clientSecret}             scope: openid email profile         provider:           okta:             issuer-uri: https://{yourOktaDomain}/oauth2/default 注意issuer-uri仅在Spring Security 5.1中支持使用Spring Security 5.1正在积极开发中并计划于2018年9月发布。 你可以使用像Keycloak这样的开源系统来设置自己的OIDC服务器。如果你不想在生产中维护自己的服务器可以使用Okta的Developer API。   7.使用密码哈希 以纯文本格式存储密码是最糟糕的事情之一。幸运的是Spring Security默认情况下不允许使用纯文本密码。它还附带了一个加密模块可用于对称加密生成密钥和密码散列也就是密码编码。 PasswordEncoder 是Spring Security中密码哈希的主要接口如下所示 public interface PasswordEncoder {String encode(String rawPassword);boolean matches(String rawPassword, String encodedPassword); } Spring Security提供了几种实现最受欢迎的是BCryptPasswordEncoder和Pbkdf2PasswordEncoder。 对于一般的密码管理我们建议使用SCrypt或Argon2, SCrypt现在已经过时了已经有一段时间了并且有一个额外的复杂因素BCrypt没有这个因素这使得暴力破解变得加倍地困难。它由着名的密码学家/安全人员Colin Percival编写并且在几乎所有编程语言中都有很好的库SCrypt也得到Latacora的认可。 Spring Security 5.1即2018年9月下旬将附带UserDetailsPasswordService API允许您升级密码存储。   8.安全地存储秘密 应谨慎处理敏感信息如密码访问令牌等你不能以纯文本形式传递或者如果将它们保存在本地存储中。由于GitHub的历史已经一次又一次证明开发人员并没有仔细考虑如何存储他们的秘密。 一个好的做法是将保密信息存储在保管库中该保管库可用于存储提供对应用程序可能使用的服务的访问权限甚至生成凭据。HashiCorp的Vault使得存储机密变得很轻松并提供了许多额外的服务。 如果您对此感兴趣请务必花一些时间查看Spring Vault它为HashiCorp Vault添加抽象为客户提供基于Spring注释的访问允许他们访问、存储和撤销机密而不会迷失在基础架构中。以下代码段显示了使用注释从Spring Vault中提取密码的方便程度。 Value(${password}) String password; 9.使用OWASP的ZAP测试您的应用程序 OWASP ZAP安全工具是针对在运行活动的应用程序进行渗透测试的代理。它是一个受欢迎的超过4k星免费的开源项目托管在GitHub上。 OWASP ZAP用于查找漏洞的两种方法是Spider和Active Scan。 Spider工具以URL种子开头它将访问并解析每个响应识别超链接并将它们添加到列表中。然后它将访问这些新找到的URL并以递归方式继续为您的Web应用程序创建URL映射。 Active Scan工具将根据潜在漏洞列表自动测试你选择的目标。它提供了一个报告显示Web应用程序可被利用的位置以及有关漏洞的详细信息。   10.让你的安全团队进行 代码评审对任何高性能软件开发团队都至关重要。在Okta我们所有的生产代码和官方开源项目都需要通过我们的专家安全团队进行分析你的公司可能没有安全专家但如果你正在处理敏感数据也许你应该这样做
http://www.zqtcl.cn/news/20734/

相关文章:

  • 域名备案时网站名字如何进行企业营销型网站建设
  • 做婚恋网站的思路关键字优化
  • 如何做外贸成都做整站优化
  • 电商网站建设课程建筑网片的用途有哪些
  • 想开个网站建设的公司中国建设银行网站维护
  • 文登区住房和城乡建设局网站网站建设咨询费用
  • 单页网站开发丽江建网站
  • 营销型网站建设概述wordpress前台空白
  • 交友高端网站建设哈尔滨建设局官网
  • 宁波怎么建网站模板什么是网络营销最不能忽视的市场细分标准
  • 怎么做网站导航地图网络科技有限公司的简介
  • 锦州哪家做网站西安市住房和城乡建设局门户网站
  • 江华县网站开发旅游网站推荐排行榜
  • 南通通州区城乡建设局网站看不到的网站
  • 镇江海绵城市建设官方网站官方网站制作
  • 装修公司网站建设的意义软件商店oppo官方下载
  • 公司和网站备案查询密码wordpress 雪花插件
  • wordpress主题样式乱深圳整站seo
  • 装修设计案例网站深圳网站推广策划
  • 电子商务网站服务器微博推广方式有哪些
  • 局网站内容建设考核网站开发外包公司坑
  • 商务网站建设期末作业wordpress固定链接404 nginx
  • 网站建设开发三层架构网易邮箱能登企业邮箱吗
  • php网站开发自学网站设计亮点
  • 做视频网站需要什么手续阿里云备案个人可以做网站吗
  • 江门网站开发公司Delphi 网站开发框架
  • 揭阳网站建设揭阳浙江东阳市网站建设公司
  • 网站建站域名解析最后做自己建设网站需要什么
  • 上海龙华医院的网站建设wordpress 常规选项
  • 张掖北京网站建设韩国购物网站模板