12.21

1666 단어 TILTIL

HTTP(Hypertext Transfer Protocol)

서로 다른 시스템들 사이에서 통신을 주고 받게 하는 가장 기본적인 프로토콜
🤨 암호화되지 않는 다는 문제점!

HTTPS(Hypertext Transfer Protocol Secure)

HTTP + SSL(보안 소켓 계층)
서버와 클라이언트 사이에 암호화된 연결을 할 수 있게 하고, 민감한 정보를 주고 받을 때 해당 정보가 도난당하는 것을 막아줌.

👉 HTTPS를 사용해야하는 이유?

  • 보안성
  • 검색엔진 최적화 -> 구글에서 가산점을 줌

SSL(Secure Sockets Layers)

서버와 브라우저 간의 보안을 위해서 만든 프로토콜

  • 공개키 대칭키의 기반으로 통신함(서로 보완해줄 수 있는 장단점 때문)

대칭키 🔑

동일한 키로 암호화와 복호화를 수행

공개키 🔐

서로 다른 키로 암호화와 복호화를 수행

🔥 SSL 통신 과정 🔥

대칭키를 전달받은 공개키로 암호화 하여 전달 자신의 개인키로 복호화하여 반대편의 대칭키를 알아냄.

SQL Injection

데이터베이스와 연동된 웹 애플리케이션에서 공격자가 입력이 가능한 폼(대표적으로 로그인 입력창)조작된 질의문(쿼리)를 삽입하여 웹서비스의 데이터베이스 정보를 열람거나 조작할 수 있는 취약점

Parameter Binding

Query String을 사용하지말고 '?'로 바인딩하는 Parameter Binding을 하면 방어할 수 있다.

preparedStatement.setString("user_id")

👉 Parameter Binding 방식 지원
JPA에서도 save()나 findById()메소드를 사용하면 내부에서 파라미터 바인딩을 지원하고 있다.

Java의 다형성을 지원하는 방법으로
메소드, 오버로딩, 오버라이딩이 있다.

Overloading

파라미터만 다른 메소드를 여러개 정의 (return type, 함수 명은 같음)

Overriding

상위 클래스가 가지고있는 메소드를 하위클래스가 상속받아서 재정의 하는 것

좋은 웹페이지 즐겨찾기