:CGI보호/설명문서

리버티게임(개발), 모두가 만들어가는 자유로운 게임
imported>Hsl0님의 2021년 1월 6일 (수) 00:45 판 (→‎예시)
둘러보기로 이동 검색으로 이동
이 문서는 틀에 대한 설명문서입니다.
이 문서는 직접 보이지 않게 되어 있습니다. 만일 이 문서가 직접 보인다면, 링크를 확인해 주시기 바랍니다.

CGI나 주소 조작을 차단합니다.

사용법

일단 CGI보호를 쓸 페이지로 가는 모든 링크에 {{CGI보호링크}}나 protectCGI-link-container 클래스를 적용해줍니다. 그렇지 않으면 애먼 사람 잡을 수 있습니다.


{{CGI보호}}

이렇게만 쓰면 잘못된 경로로 들어왔을 때 원래 갔어야 할 페이지 또는 이전 페이지로 돌려보냅니다.


{{CGI보호|[[너는 죽었다]]}}

이런 식으로 링크를 쓰면 링크된 페이지로 보냅니다. 위의 예시의 경우 너는 죽었다로 보냅니다.


{{CGI보호|{{DB2|set|1|[[너는 죽었다]]}}}}

링크를 클릭하는 방식으로 구현되므로 DB2로 치트 사실을 기록할 수 있습니다. 위의 예시의 경우 DB2 기본키의 값을 1로 설정하고 너는 죽었다로 보냅니다.


{{CGI보호|{{DB2|set|1|.}}}}

DB2 데이터만 설정하고 다른 문서로 보내고 싶지 않다면 이런 식으로 링크 자리에 아무 일반 텍스트를 넣으면 됩니다. 아예 비워버리면 정상적인 사용자도 치트로 낙인찍어버리니 조심하세요!

비상 임시 저장

이런 일이 있으면 안되겠지만, 혹시라도 CGI보호가 적용된 게임을 플레이하던 도중에 502, 503 에러가 터진다면 나중에 다시 돌아오기도 곤란하겠죠. 이럴 때 주소창 끝에 ##emergency-save를 붙여보세요. 나중에 서버가 돌아오면 임시 저장한 페이지부터 이어서 플레이하실 수 있습니다.

악용할 생각은 하지 마세요. 세이브된 페이지로 돌아갈 수 있는 기회는 단 한번 뿐이므로, 세이브/로드 노가다에 써먹을 수 없습니다.

주의사항

사용자 문서에 포탈을 여는 등의 부정행위를 막기 위해 최상위 문서가 같은 문서끼리의 링크만 허용됩니다. 따라서 서로 다른 게임간의 링크는 모두 치트로 처리해버리니 이런 경우에는 적용하지 않는 것이 좋습니다.

편집창 미리보기에서는 원활한 테스트와 부정행위 방지를 위해 CGI보호, CGI보호링크가 적용되지 않습니다. 따라서 미리보기 상태에서 치트로 낙인찍힐 걱정도, 미리보기를 통한 기록 없는 완전범죄도 불가능합니다. (물론 편집창 훔쳐보기는 {{편집불가}}로 막아야죠.)

자바스크립트를 활용하므로 자바스크립트를 차단하거나 전문적 자스기술을 가진 사용자에게 무력화될 여지가 있습니다. 정말로 중요한 부분에는 {{CGI보호전용}}이나 protectCGI-only 클래스를 적용해주세요. 해당 부분은 CGI보호가 모든 작업을 완료할 때 표시되므로, 자바스크립트를 차단한 사용자에게는 표시되지 않습니다. 물론 자스 전문가를 완전히 차단할 기술은 없으므로 특히 멀티플레이 게임에서 CGI보호만을 전적으로 의존하면 곤란합니다.

예시

틀:CGI2의 예시에 CGI보호를 적용하였습니다.

도보시오