회원제 완전 익명 커뮤니티를 만드려고 합니다.

차단 기능은 브라우저 지문으로 대체하려고 합니다.

 

라이믹스는 글, 댓글 작성 외에 회원가입시 IP도 기록되는데 전부 기록하지 않게 하려면 어떻게 수정해야 할까요?

  • profile
    코어를 수정해야하는 수 밖에 없을텐데요.

    상당수 많은 부분을 수정 해야할 거예요.
  • profile
    이건 될지 모르겠지만 index.php에서 $_SERVER[REMOTE_ADDR] 항목을 0.0.0.0같이 임의의 항목으로 수정하시면 아마 IP 기록은 안되게 할 수 있을거 같습니다.

    엄연히 말하자면 기록은 되지만 그 값이 실제 아이피가 아니라 지정한 임의의 값(0.0.0.0)이 들어가 아이피로 식별이 불가능하게 되겠죠
  • profile profile
    근데 한가지말씀드리면 추천 비추천 등등의 공간에서 아이피를 이용해서 중복 검사하는등등 여러가지 제약이 잇습니다.. 특히 비회원 운영제도라면 아이피가 아니라면 사람들을 식별하기가 어려울텐데요. 누구나 수정권한을 가지게 될 수 잇는 위험한 설정인듯 합니다..
  • profile profile

    앗 그렇군요

    질문자분께서 말씀하신 브라우저 지문이 어떤걸 의미하는지는 모르겠지만 만약 해당 값이 유일한 값이라면, 그 토큰을 이용해 적당히 계산식을 맞춰 아이피 형식으로 만들어주면 될거 같네요

    그러면 아이피주소와 동일한 역할을 할테지만 그걸가지고 추적은 어렵게 될테니까요

  • profile ?
    람보님 답변을 보니 여러 권한쪽에 확실히 문제가 발생할것 같네요...

    그렇다면 글과 댓글만 기록을 안하게 하려면 어디를 수정해야 하는지 알 수 있을까요?
  • ? profile

    람보님께서 말씀하셨듯이 해당 기능은 코어를 아주아주 많이 수정해야해서 어디를 수정해야할지 짚어드리기가 어렵습니다.

     

    특히 유지보수 측면에서 코어수정은 최대한 피하시는게 좋습니다

    차라리 제가 위에 적어놓은것처럼 아이피주소를 특정 불가능한 고유한 값으로 변경하시는게 낫지 않을까 싶어요

    라이믹스에서 아이피주소가 하는 역할은 하면서, 생각하고 계신 아이피주소로 인한 추적도 막을 수 있을테니까요

  • profile profile
    권한 문제는 언제든지 생깁니다 아이피가 가지는 역할이 커서 그냥 막 수정안하는게 더 나음.. 그냥 감찰 안한다 정도만 하면되죠. 스킨단위에서 아이피뜨는거 등등 다 지우고요
  • profile

    코어 수정이 많이 필요하지는 않습니다.

     

    라이믹스에서 모든 IP 정보는 RX_CLIENT_IP 상수를 참조하고, 그 상수는 처음 선언할 때 $_SERVER['REMOTE_ADDR']에서 값을 받아오도록 되어 있습니다. RX_CLIENT_IP 상수를 참조하지 않는 서드파티 자료라도 $_SERVER['REMOTE_ADDR']에서 값을 받아오는 것은 마찬가지입니다.

     

    따라서 라이믹스가 본격적으로 실행되기 전, 그러니까 common/autoload.php 상단이나, 아니면 코어 수정 없이 php.ini에서 auto_prepend_file로 설정한 별도의 파일을 사용하여 $_SERVER['REMOTE_ADDR']에 임의의 값을 넣으면 이후에 실행되는 모든 모듈과 애드온 등에서 방문자의 IP가 그 값으로 기록되도록 할 수 있습니다. 흔히 지레짐작하는 것과 달리 $_SERVER 초전역변수는 신성불가침이 아닙니다. 스크립트에서 마음대로 조작할 수 있어요. 이 변수 하나만 바꾸면 되지, 굳이 그 변수를 사용하는 다른 곳을 일일이 찾아서 수정할 필요가 없다는 뜻입니다. 단, 아무거나 넣으면 안 되고 일반적인 IP 주소의 형태(0.0.0.0 또는 IPv6)를 갖추어야 코어 및 서드파티 자료들이 오작동하지 않을 것입니다.

     

    물론 모든 방문자가 동일한 IP로 찍힌다면 아무도 추천을 할 수 없게 되는 등, 윗분들이 말씀하신 부작용이 발생할 여지가 있는 것은 사실입니다. 따라서 모든 IP를 동일한 값으로 치환하기보다는 랜덤으로 생성하거나 일정한 변환 규칙을 거쳐서 방문자마다 각각 다른 가짜 IP가 나오도록 하는 방법이 좋을 것 같습니다. 예를 들어 방문자의 실제 IP 주소나 위에서 말씀하신 브라우저 지문 등을 md5로 처리한 후, 4자리씩 8개로 나누어 콜론(:) 문자로 구분하면 IPv6 주소처럼 보이겠지요.

     

    제가 10여년 전에 보안상 민감한 사이트를 운영하면서 이런 트릭을 써본 적이 있기에 잘 작동한다고 자신있게 말씀드리는 것입니다.^^  심지어 이런 IP 조작 기능을 정식 부가서비스로 제공하는 클플 같은 회사도 있습니다. 클플을 사용하면 IPv6 방문자가 생겨나는데, 백엔드에서 IPv6 주소를 처리하기 곤란한 경우 특정 기능을 켜면 그럴듯한 가짜 IPv4 주소로 바꿔서 전달해 주더군요.

  • ?

    2.0.10 버전 기준으로

    common/constants.php의 62, 67번째 줄을 원하는 값으로 바꾸시면 됩니다.

    define('RX_CLIENT_IP', '127.0.0.1'); 과 같이 바꾸실 수 있겠죠...

     

    추가로 설치하신 모듈이나 애드온 대부분은 RX_CLIENT_IP 상수를 쓰지 않고 $_SERVER['REMOTE_ADDR'] 값을 사용할겁니다. 그 부분 역시 전부 찾으셔서 \RX_CLIENT_IP로 바꾸시면 됩니다.