(웹사이트)로그인 자바스크립트로 확인(체크) 하는지 여부를 알 수 있나요?

yellowstone의 이미지

문제는 자바스크립트로 로그인 하면 보안상 안좋다고 들었어요.

[단독] 자바스크립트 암호화 뚫려...국내 주요 포털·은행·쇼핑몰·대학 등 위험
http://www.dailysecu.com/news_view.php?article_id=6754

로그인 여부를 체크하는 일은 반드시 서버에서 하기

로그인 여부를 체크하고 로그인하지 않았으면 해당 페이지를 접근하지 못하도록 하는 일은 웹 서버에서 해야할 일입니다. 클라이언트(웹 브라우저)는 사용자가 페이지에 접근할 자격이 있는지, 서버가 판단한 결과만을 받아야 합니다. 이런 작업을 웹 페이지 상에서 자바 스크립트를 사용하여 처리하는 경우가 있는데, 이는 사용자 정보를 다른 이들이 볼 수 있게 노출하게 되는 결과를 낳을 수 있습니다. 이는 HTML 페이지의 자바 스크립트 코드가 클라이언트, 다시 말해 사용자의 웹 브라우저에서 실행되기 때문입니다. 예를 들어 보겠습니다.

[phone_numbers.html]

  <script>
  if (IsUserLoggedIn()) {
      alert("로그인하세요.");
      window.location = "/login.html";
  }
  </script>
  <body>
  회원 목록 및 전화번호
  ...
  </body>

이것은 phone_numbers.html라는, 한 동호회의 회원 목록과 전화번호를 볼 수 있는 HTML 페이지의 일부분입니다. 페이지가 열릴 때 IsUserLoggedIn()라는 함수를 통하여 사용자가 로그인하였는지 확인하고, 로그인하였으면 페이지의 내용를 보여주고, 그렇지 않으면 login.html로 바로 이동하여 사용자의 로그인을 유도하게 되어있습니다. 하지만 만약 웹 브라우저의 자바 스크립트를 끄고 보거나, phone_numbers.html의 소스를 본다면 어떨까요? 이 목록이 고스란히 드러날 것입니다. 검색 로봇 또한 자바 스크립트를 실행하지 않는 클라이언트이므로 마찬가지로 이 목록을 그대로 수집하고, 검색 가능케 합니다.

무척 단순한 예시이기는 하나, 사용자의 로그인 여부를 확인하는 일과 같이 서버가 해야 할 작업은 반드시 서버에서 해야 하는 이유를 극명하게 보여줍니다.

출처 : 더 나은 웹
http://www.betterweb.or.kr/open-web/security-guide/#i-2

자바스크립트로 로그인 여부 체크 과정을 클라이언트에서 확인하나요? 아니면 서버에서도 확인을 할 수도 있나요?

자바스크립트 끄고 계정과 비밀번호 입력 한 뒤에 로그인이 안되면, 자바스크립트로 로그인 처리를 하는거 맞나요?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.