JavaAPI 를 사용하기 위한 다섯 가지 팁
암호화 등의 알고리즘을 피해야 한다는 것은 누구나 알고 있다. 같은 이유로 응용 프로그램의 보안 스택의 나머지 부분은 동일합니다. 이는 비용과 위험이 높을 수 있습니다. 너는 몇 가지 실수를 저지를 수 있다. 1999 이후 89373 개의 CVE (공용 취약점 및 노출) 가 발표되었습니다. 그리고 대부분 밝혀진 발견자들은 매우 똑똑한 사람들이다.
간단한 사용 사례 (예: 사용자의 암호 확인) 를 처리하는 것이 매우 간단하다고 생각할 수 있습니다. 한 쌍의 문자열을 비교하는 것입니다. 이렇게 생각하는 것은 옳지 않다. 암호의 해시를 확인하고 로그인 시도 횟수를 확인하며 사전에 대한 공격을 줄여야 합니다. 이것은 빙산의 일각에 불과하다. 가장 좋은 선택은 Apache 의 Shiro 나 SpringSecurity 와 같은 기존의 성숙한 라이브러리나 프레임워크를 사용하여 복잡한 보안 문제를 해결할 수 있도록 하는 것입니다.
2. 항상 TLS 를 사용합니다! 꼭 TLS 를 사용하세요!
간단한 코드 한 줄만 있으면 애플리케이션에 TLS(HTTPS/SSL) 가 필요하므로 누구나 이렇게 해야 합니다! 아파치 헤로 프레임워크를 사용하는 경우 [urls]/**=ssl 속성을 설정하기만 하면 됩니다. Spring Security 를 사용하는 경우 HttpSecurity 를 설정할 때 하나의 메서드만 간단히 호출하면 됩니다. Http. Requirechannel () anyrequest () 를 참조하십시오. Spring Boot 에서는 몇 가지 속성만 설정하면 됩니다. Server.port = 8443server.ssl.key-store = classpath: keystore.jksserver.ssl.key-store 와 같이 표시됩니다
3. Spring Booti 를 사용하여 웹 서비스를 생성합니다.
Spring Boot: Spring 플랫폼의 간소화된 버전으로 Spring 응용 프로그램을 쉽게 작성할 수 있습니다. 예를 들어, "12 app 응용 프로그램에서 고려해야 할 요소" 기사에서 언급한 아이디어는 아주 적은 코드로 쓸 수 있다. 만약 당신이 아직도 전쟁 가방을 만들어 코딩하고 있다면, Spring Boot 은 배울 만한 가치가 있다. Spring Booti 를 사용하면 간단한 주석을 사용하는 등 복잡하고 다양한 유형의 응용 프로그램에 사용할 수 있습니다.
(@EnableResourceServer)) OAuth 리소스 서버를 하나만 구축하거나 간단한 속성을 통해 포트를 변경하기만 하면 됩니다. server.port 8090 SpringBoot 을 사용하지 않으려면 Dropwizard 를 사용하여 jax-re 를 구축할 수 있습니다
4. 애플리케이션 및 성능 지표 모니터링
데이터가 없으면 프로그램 오류를 찾기가 어렵습니다. Spring Booti 는 Actuator 를 사용하여 다음과 같이 애플리케이션에 하나의 종속성만 추가하면 지표 데이터를 쉽게 수집할 수 있습니다.
& ltartifactld & gt 스프링 부츠 스타터 액츄에이터 & lt/artifactld > 。
& lt/dependency & gt;; 。
그런 다음 애플리케이션 주소에 액세스한 후 브라우저를 통해 /health 또는 /metrics 를 입력하여 애플리케이션 상태 또는 지표를 확인할 수 있습니다. Dropwizard 프레임워크는 healthcheck 및 /metrics 를 통해 동일한 기능을 수행합니다.
5. 민감한 정보 보호
사람들은 API 키가 안전하지 않다는 것이 사실이라고 생각한다. 키는 전자 메일로 전송되거나 소스 코드 관리 시스템에 의해 제어됩니다. 아마도 그것이 그들이 비밀번호보다 더 안전하지 않은 것처럼 보이는 이유일지 모르지만, 그것들은 똑같이 민감하다. AP 키를 파일에 저장해야 하는 경우 해당 파일에 대한 제한된 액세스 권한이 부여되었는지 확인합니다.
예를 들어 Okta 의 YAML 파일을 개인 디렉토리에 저장하고 파일 소유자에게 읽기 전용 권한을 부여하는 것이 좋습니다. Chmod u = r, go-rwx ~/. Okta/okta.yaml 앱을 사용하는 사용자를 위한 API 를 만들고 있다면 SSH 파일을 ~/에 넣으라고 상기시켜주세요. 권한을 설정하지 않고 ssh 디렉토리. GitHub 는 이를' 위험 지역' 에 배치하여 사용자에게 이것이 매우 유용하다는 것을 상기시켰다.