개발지식공간

암호화된 값을 URL 인코딩 시 주의할점 + Tip!

이진유진 2024. 2. 29. 11:17
반응형

1. Base64 Encoding 후 URL 인코딩 

  • 대부분의 암호화 알고리즘은 이진 데이터를 생성하므로, 보통 Base64 인코딩을 하여 텍스트로 변환합니다. 그 후에 URL Encoding을 적용합니다. 
  • Base64로 인코딩한 값은 URL 안전하지 않은 문자를 포함할 수 있기 때문에 URL 인코딩을 추가로 적용하여 안전한 URL 문자열로 만들어야 합니다. 

2. 특수 문자 처리 

  • URL에 사용되는 몇 가지 특수문자들은 문제를 일으킬 수 있습니다. 
  • 예를 들어 '+' 문자는 URL에서 공백을 나타내는 데 사용되어 주의가 필요합니다. 
  • Base64 인코딩 후에 나타날 수 있는 '+'문자를 '%2B'로 바꾸어야 합니다. 

3. 길이와 URL 제한

  • URL에는 길이 제한이 있을 수 있어, 암호화된 값이 너무 크면 URL에 추가하기 어려울 수 있습니다. 
  • 일부 웹 서버 및 브라우저는 URL 길이에 제한을 둘 수 있으므로, 이를 고려하여 적절히 분할하거나 다른 방법을 고려해야합니다. 

4. 디코딩 시 주의 

  • URL 디코딩 시에는 반드시 올바른 순서로 수행되어야 합니다. 

 

 

너무 큰 암호화된 값을 URL에 직접 추가하기 어려울 때 다른 방법을 고려해야합니다 ! 

1. HTTP POST 사용 

  • 민감한 정보나 큰 양의 데이터를 전송할 때는 HTTP POST를 사용하여 데이터를 본문에 포함시킬 수 있습니다. 
  • 웹 서버에 데이터를 전송하는 폼을 만들고 POST 요청을 보낼 수 있습니다. 

2. 단축 URL 서비스 사용 

  • 긴 URL을 짧게 줄이는 서비스를 사용하여 URL을 단축시키고, 암호화된 값을 표현하는 짧은 URL을 사용할 수 있습니다. 
  • 주의할 점은, 보안에 민감한 정보를 URL 단축 서비스에 포함시키는 경우, 해당 서비스의 보안 정책을 고려해야합니다. 

3. 세션 사용 

  • 암호화된 값 대신에 세션을 사용하여 서버 측에 데이터를 저장하고, 클라이언트에는 세션 식별자만 전달하는 방법을 고려할 수 있습니다. 
  • 세션은 서버에 데이터를 안전하게 유지하면서 클라이언트에는 작은 크기의 토큰만 전달하는 방법을 제공합니다. 

4. 데이터베이스 사용 

  • 민감한 정보를 데이터베이스에 저장하고, 데이터베이스에서 생성된 고유한 식별자를 URL에 추가하여 전달하는 방법을 고려할 수 있습니다. 

 

 


암호화된 값을 인코딩하여 URL에 사용하고자 할때, 
여러가지 상황을 보면서, 
정리를 해놨습니다!

암호화된 값을 인코딩해 URL 사용을 하려했을때, 안되는 상황들이 종종 발생하는데, 
이 글을 보고 모두 잘 해결하셨으면 좋겠습니다 :) 

잘못된 지식이나 좋은 정보들은 댓글 달아주시면 감사하겠습니다 :) 
반응형