그누보드의 세션관리에 대하여.. 정보
그누보드의 세션관리에 대하여..본문
한동안 안오다보니 스팸에관련된 이슈가 있었는지도 몰랐네요..
기존부터 생각해오던거 였는데 결국은 발생해서..
미리 말 못한 것도약간은 죄송스럽습니다.
그누보드의 경우 g4root/data/session 에 저장되거나, 특별하게 세팅하지 않는다면
/tmp/ 안에 세션이 저장되게 되어있습니다.
문제는 session 의 값은 web 디렉토리안에 있으면 안된다는 점이고,
또한 기존의 그누보드는 세션관리가 제대로 안되고 있다는 점입니다.
세션 가비지기능이 php 내에 있으나 그것이 제대로 동작하지 않는것인지?
그누보드가 생성시키는 세션이 호환?이 되지 않는것 인지는 확신하지 못합니다.
또한 스팸이나 메일 악용을 막기위한 토큰을 생성하지만, 몇몇 분들께서 제기하신
암호로직과 해당키가 노출되고 있습니다. (공개보드 기반이라 어쩔수없지만)
하나의 키는 한번만 사용되게 해야 되는 재사용 불가의 원칙이 깨진듯 보이네요.
또한 자바 스크립트로 이러한 체크를 하는것은 잘못된것입니다.
대안으로는 세션 값을 파일로 저장하는 방식이 아니라 DB에 입력하는 방식으로 대체하고,
토큰의 경우 1회 사용의 제한을 걸고 해당 사용된 토큰은 DB에 입력하여 다시 사용할수 없도록 변경해야됩니다.
토큰의 크기고 문제가 될수 있으나,
기본적으로 256비트 정도라면 10년정도는 사용할 수 있는 토큰을 만들어 낼 수 있습니다.
또한 이러한 체크 로직은 자바스크립트(클라이언트) 가 아닌 서버스크립트(php) 에서 update 되는 최종단에서 이루어져야 합니다.
관리자님께서 알아서 처리하시겠지만, 미약하나마 알고있는 내용을 적어보았습니다.
그럼 수고하세요 :)
기존부터 생각해오던거 였는데 결국은 발생해서..
미리 말 못한 것도약간은 죄송스럽습니다.
그누보드의 경우 g4root/data/session 에 저장되거나, 특별하게 세팅하지 않는다면
/tmp/ 안에 세션이 저장되게 되어있습니다.
문제는 session 의 값은 web 디렉토리안에 있으면 안된다는 점이고,
또한 기존의 그누보드는 세션관리가 제대로 안되고 있다는 점입니다.
세션 가비지기능이 php 내에 있으나 그것이 제대로 동작하지 않는것인지?
그누보드가 생성시키는 세션이 호환?이 되지 않는것 인지는 확신하지 못합니다.
또한 스팸이나 메일 악용을 막기위한 토큰을 생성하지만, 몇몇 분들께서 제기하신
암호로직과 해당키가 노출되고 있습니다. (공개보드 기반이라 어쩔수없지만)
하나의 키는 한번만 사용되게 해야 되는 재사용 불가의 원칙이 깨진듯 보이네요.
또한 자바 스크립트로 이러한 체크를 하는것은 잘못된것입니다.
대안으로는 세션 값을 파일로 저장하는 방식이 아니라 DB에 입력하는 방식으로 대체하고,
토큰의 경우 1회 사용의 제한을 걸고 해당 사용된 토큰은 DB에 입력하여 다시 사용할수 없도록 변경해야됩니다.
토큰의 크기고 문제가 될수 있으나,
기본적으로 256비트 정도라면 10년정도는 사용할 수 있는 토큰을 만들어 낼 수 있습니다.
또한 이러한 체크 로직은 자바스크립트(클라이언트) 가 아닌 서버스크립트(php) 에서 update 되는 최종단에서 이루어져야 합니다.
관리자님께서 알아서 처리하시겠지만, 미약하나마 알고있는 내용을 적어보았습니다.
그럼 수고하세요 :)
추천
1
1
댓글 5개
한가지 빠진게 있는데 토큰생성 로직도 쉽게 유추하여 생성시킬수 없도록 하여야 합니다.
IP+timestemp + 접속referer+botable_id+session 등으로 최대한 복제할수 없는 로직을 이용해야될것 같습니다.
IP+timestemp + 접속referer+botable_id+session 등으로 최대한 복제할수 없는 로직을 이용해야될것 같습니다.

오랜만이네요
좋은 내용입니다.
좋은 내용입니다.
동의합니다`
여러가지 좋은 내용입니다.
그런데 호스팅을 받는 인스톨러의 입장에서는 제한이 있기 마련같습니다.
지금도 설치가되고 안되고 세션이 생성되지 않는 문제도 있고 하는데...
루트에 session 디렉토리를 각각 다르게 주는 방법을 말씀하시는 건가요?
그런데 호스팅을 받는 인스톨러의 입장에서는 제한이 있기 마련같습니다.
지금도 설치가되고 안되고 세션이 생성되지 않는 문제도 있고 하는데...
루트에 session 디렉토리를 각각 다르게 주는 방법을 말씀하시는 건가요?
난수 발생으로 하면 되지 않나요??