문제

나는 사용했다 HTML 정화기 Wysiwyg 편집자에 직면 한 내 대중에서 들어오는 용의자를 제거하기 위해. 들어오는 HTML은 웹 사이트의 공개 부분에도 표시됩니다.

링크를 허용했으며 URL을 일반 텍스트 (청정기 사용)로 자동으로 연결합니다.

외부 링크를 허용하지만 동일한 도메인에 대한 링크를 금지하는 방법이 있습니까? 예를 들어 내 도메인은 www.example.com입니다

http://www.google.com 연결됩니다.

http://www.example.com/logout/ 연결되지 않습니다.

악의적 인 사용자의 간섭을 최소화하고 있습니다. 로그 아웃 링크를 포스트 키/값 쌍으로 양식 조치로 만들어야합니까?

감사

도움이 되었습니까?

해결책

로그인/아웃 양식은 항상 게시물 전용이어야합니다.

검증 값에 대해 걱정하지 마십시오. 그러나 이것은 매우 중요한 보안 문제입니다. 웹 서버의 상태를 변경하는 트랜잭션은 요청을 게시해야합니다. 당신은 절대 허용해서는 안됩니다 http://example.com/object?action=delete, 또는 그 변형. PHP는이 문제에서 나쁜 관행을 장려하지만 항상 하나 또는 다른 하나를 사용해야하며 둘 다 허용하지 않아야합니다.

사용자가 Wysiwyg 편집기에 양식을 작성할 수 있다면 이보다 훨씬 더 큰 문제가 발생합니다.

원래 질문에 답하기 위해 내부 링크를 비활성화하려면 URI.HostBlacklist 그리고 확실히 설정하십시오 URI.MakeAbsolute:

http://htmlpurifier.org/live/configdoc/plain.html#uri.hostblacklist

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top