使用JavaAPI的5个技巧

如题所述

使用JavaAPI的5个技巧    

    不要自己去实现安全框架

几平每个人都知道避免去实现加密等算法。同样道理,你的应用的安全栈的其余部分也是一样,可能需要花费很大,得到的风险也很大。你很可能会犯一些错误。自1999年以来,已经有89373个CVE(公共漏洞和暴露)发布了。而其中公开的大部分的发现者都是那些非常聪明的人。

你可能认为处理一个简单的用例(例如验证用户的密码)是很简单的事情一你所做的一切只是比较一对字符串。这样想就错了。你需要验证密码的哈希值,审核尝试登录的次数,减少针对字典的攻击,这只是冰山一角。你最好的选择是使用现有的成熟的库或框架,例如Apache的Shiro或者SpringSecurity,让这些框架去处理各类复杂的安全问题。

2.Use TLS,Always!永远使用TLS!

能让你的应用需要TLS(HTTPS/SSL)只需要简单的一行代码,所有人都应该这样做!如果使用Apache Shiro框架,只需要设置属性:[urls]/**=ssl如果使用Spring Security.,只需要在设置HttpSecurity时,简单调用一个方法即可。http.requiresChannel()anyRequest().requiresSecure(),在Spring Boot中,仅需设置一些属性,如下:server.port=8443 server.ssl.key-store=classpath:keystore.jks server.ssl.key-store-password=secret server.ssl.key-password=another-secret。

3.使用Spring Booti创建Web Service

Spring Boot:是Spring平台的一个简化,能让编写Spring应用变得很简单,例如能用很少的代码,编写《app应用中考虑的12个因素》一文中提到的观点。如果你还在使用建War包的方式编码,那么Spring Boot值得你去学习。使用Spring Booti可以复杂的、不同类型的应用,例如可以使用简单的注解。

(@EnableResourceServer))就搭建一个OAuth资源服务器,或者通过简单的属性改变其端口:server.port 8090如果不喜欢使用SpringBoot,.那么可以使用Dropwizard去搭建JAX-RS技术栈。

4,监视应用和性能指标

如果无任何数据的情况下是很难发现程序的错误的。Spring Booti通过使用Actuator,能让收集指标数据变得容易,只需要在应用中增加一个依赖,如下:<dependency<groupld>org.springframework.boot</groupld>。

<artifactld>spring-boot-starter-actuator</artifactld>。

</dependency>。

然后就可以通过浏览器中,在访问应用地址后输入/health或者/metrics去检查应用的健康情况或者指标。Dropwizard框架通过healthcheck和/metrics实现同样的功能。

5.保护敏感信息

人们都认为API密钥是不安全的,这是事实。密钥通过电子邮件发送或源代码管理系统控制。也许这是它们看起来比密码更不安全的原因,但它们也一样敏感。如果需要将AP川密钥存储在文件中,请确保授予文件有限的访问权限。

例如,我们建议在私人目录中存放Okta的YAML文件并且赋予文件所有者只读权限。chmod u=r,go-rwx ~/.okta/okta.yaml如果你正为使用你的APP的用户创建API,记得提醒他们,如果无设置好权限的话,SSH的忽文件是放在你的~/.ssh目录下,如果无设置好权限的话。GitHub把它们放在“危险区域”,以提醒用户,这是十分有用的。

温馨提示:答案为网友推荐,仅供参考
大家正在搜