본문 바로가기

웹접근성지침(WCAG2.0)

[웹접근성 지침-일반기술 G105] 사용자가 재인증한 후에 계속 사용할 수 있도록 데이터를 저장해야 한다.

728x90

원문: https://www.w3.org/TR/2016/NOTE-WCAG20-TECHS-20161007/G105.html


어떤 사용자들에게는 타이핑이 아주 힘든 일 일수 있습니다.

사용자가 글을 처음부터 다시 쓰는 일이 없도록 배려해 주어야 합니다.


기술설명

사용자 인증이 필요한 웹서버는 사용자의 활동이 일정시간 없으면 세션을 종료합니다.

사용자가 데이터를 빨리 입력하지 못하여 정해진 시간 내에 제출하지 못한 경우 서버는 재인증을 요구하게 됩니다.

그래서 사용자가 재인증을 위해 로그인 하는 동안 서버는 그동안 사용자가 입력했던 내용들을 임시 기억장치(cache)

에 저장해 둡니다. 사용자가 재인증에 성공하면 캐시에 있던 내용들을 가져와서 재인증 전의 상황으로 되돌립니다.

서버는 캐시에 저장한 내용을 무기한 보관 하지는 않습니다. 재인증을 할 수 있을 만큼의 시간동안 보관합니다.(대략 하루 정도입니다.)

 

 

예시

사용자가 로그인 한 다음에 게시물에 답글을 남깁니다.

답글을 길게 작성하다 보니 서버에서 지정한 비활성 세션의 허용시간 보다 길어졌습니다.

사용자가 글 작성을 마치고 [제출]을 하자 서버가 시간이 초과 되었으니 제출을 원한다면 다시 로그인하라는 메시지를 보냅니다. 사용자가 작성한 답글 내용은 서버가 임시로 저장합니다.

사용자가 로그인에 성공하자 작성한 답글은 정상적으로 제출되었고, 서버가 임시로 보관한 내용도 삭제 되었습니다.

 

사용자가 보안 구역에서 로그인하고 양식(Form)을 작성하고 있습니다.

보안상의 문제로 세션 시간이 초과 되었습니다. 사용자가 양식에 작성한 내용들은 서버가 보관하고, 사용자에게 시간이 초과 되었으니 다시 로그인 하라는 메시지를 보냅니다.

사용자가 로그인에 성공하자 이전에 입력했던 양식 그대로 다시 화면에 나타납니다.

사용자는 양식 작성을 이어서 마무리한 뒤에 제출하였습니다.

사용자가 로그인에 성공하지 못했다면 양식에 작성했던 내용들은 없어졌을 것입니다.

 

 

관련기술

G181: 재인증 페이지에서 사용자 데이터를 숨겨진 데이터 또는 암호화된 데이터로 인코딩

 

 

점검절차

양식에 데이터를 입력하여 제출하기 위해 로그인이 필요한 사이트에서

1. 로그인하여 시간제한 활동을 시작합니다.

2. 세션 시간이 초과되도록 합니다.

3. 제출합니다.

4. 다시 인증합니다.

5. 재인증 후 데이터 손실 없이 계속 진행 가능한지 확인합니다.

 

 


 

나의 정리

세션(section)은 서버와 클라이언트간의 서비스 응답 처리를 위해 연결된 상태를 말합니다.

세션이 끊어졌다는 것은 서버와 클라이언트간의 상호작용이 일어나지 않는다는 것입니다.

즉 사용자가 서버의 서비스를 이용할 자격이 없어 서비스를 이용할 수 없다는 것입니다.

 

사용자가 로그인을 해야 게시판에 글을 쓰거나 답변을 쓸 수 있는 경우가 있습니다.

로그인을 했다는 것은 사용자(클라이언트)와 서버가 연결되어 서비스를 사용할 수 있다는 자격을 가진 것입니다.

하지만 이런 연결 상태는 사용자가 정해진 시간동안 활동을 하지 않는 경우, 자동으로 끊어집니다.

이런 연결 상태가 길어지면 서버에 부담이 가기 때문에 서버가 세션 유지 시간을 정해 놓습니다.

 

로그인 한 후 글을 작성하는데 서버에서 지정한 세션 유지 시간을 넘겨서 제출을 하면, 서버는 사용자가 작성한 글을 임시 저장소에 저장한 다음에 끊어졌던 세션을 다시 연결하기 위해 다시 로그인하라고 사용자에게 알립니다.

사용자가 로그인에 성공하면 서버는 임시 저장소에 저장했던 글을 전송할 수 있게 해줍니다.

전송이 되면 임시 저장소에 있던 글은 삭제가 됩니다.

 

실제 예를 통해 다시 알아봅시다.

토론하는 사이트가 있습니다. 어떤 의견에 대한 댓글을 쓰기 위해 해당 사이트에 로그인 합니다.

해당 사이트의 서버는 세션 유지 시간을 1분으로 정했습니다.

즉 작성자는 1분 안에 글을 써서 제출해야 한다는 것입니다.

사용자는 댓글을 열심히 적습니다. 하지만 내요이 많다 보니 세션 유시지 시간을 넘겼습니다. 이후 2분간 더 글을 적었습니다. 사용자는 작성한 댓글을 전송했습니다.

하지만 세션은 이미 끊어 졌기 때문에 다시 세션을 연결하기 위해 재인증이 필요합니다.

그래서 서버는 사용자에게 "작성 시간이 초과 되었습니다. 재인증을 위해 다시 로그인 해주세요."라는 메시지를 보냅니다.

그리고 사용자가 작성했던 글을 임시 저장소에 저장해 둡니다.

사용자는 다시 로그인을 하고, 서버는 끊어졌던 세션을 다시 연결시킵니다.

그리고 임시 저장소에 저장했던 글을 다시 사용자가 작성하던 양식에 넣어줍니다.

사용자는 로그인 전의 상태로 돌아오게 되는 것입니다. 사용자는 내용을 다시 한 번 학인 후 댓글을 '제출'합니다.

세션이 연결된 상태에서 제출했기 때문에 이상 없이 처리되었습니다.

 

여기서 중요한 것은 사용자가 작성한 글이 다시 로그인 한 다음에 사라지지 않았다는 것입니다.

이렇게 서비스가 제공되면 사용자는 글을 다시 쓸 필요가 없게 됩니다.

제출 하거나 이어서 계속 글을 쓸 수 있습니다.

 

어떤 사용자들에게는 타이핑이 아주 힘든 일 일수 있습니다.

사용자가 글을 처음부터 다시 쓰는 일이 없도록 배려해 주어야 합니다.

 


 

G105: Saving data so that it can be used after a user re-authenticates

https://www.w3.org/TR/2016/NOTE-WCAG20-TECHS-20161007/G105.html

 

G105: Saving data so that it can be used after a user re-authenticates | Techniques for WCAG 2.0

Web servers that require user authentication often terminate the session after a set period of time if there is no activity from the user. If the user is unable to input the data quickly enough and the session times out before they submit, the server will

www.w3.org

 

728x90