SESTA/FOSTA 법은 소셜/포럼/UGC 웹사이트 운영자에게 제공되던 많은 보호 조치(섹션 230 안전 항만)를 사실상 제거하여, 웹사이트 운영자가 사용자의 행동에 대해 책임을 지게 합니다.
보호 기능을 강화하기 위한 해결책의 하나로, 이미지 인식 API 사용을 지원하는 것이 현명할 수 있습니다. 이를 통해 (위험한 콘텐츠, 알몸, 피비린내 나는 장면 등) 노골적인 콘텐츠 업로드를 자동으로 차단할 수 있습니다.
또한, 초안에 부적절한 이미지를 업로드한 후 이를 다른 곳에서 핫링크로 사용하는 등 악용되는 경우로부터의 보호도 강화해야 합니다. 이는 무료 익명 이미지 호스팅처럼 악용될 수 있습니다. Discourse에서 이것이 얼마나 악용될 수 있는지는 정확히 모르지만, 기본 설정에서는 초안 생성 후 180일 동안 웹마스터가 업로드된 내용을 알지 못한 채로 악용될 수 있는 것으로 보입니다(초안 생성 후 n일이 지난 초안 삭제).
Google Cloud Vision API를 통해 Discourse에 업로드된 모든 이미지를 검사하는 기능이 있다면, AdSense에서 안전을 유지하는 데 매우 유용할 것입니다. 이전 웹사이트에서는 이렇게 했으며, 노출이나 폭력적인 사진이 업로드되는 일이 전혀 없었습니다.
Google에서 제공하는 Ruby Gem이 있습니다:
잠재적인 플러그인은 모든 이미지(게시물, 아바타, 프로필 배경 등)에 대해 Discourse의 주요 이미지 업로드 프로세스에 연결되어야 하며, 허용되지 않는 콘텐츠를 포함하고 있는 이미지를 거부해야 합니다:
솔직히 내 생각에는 인라인 이미지 업로드 프로세스는 이미 비동기(async)입니다. 그리고 Google API는 매우 빠릅니다.
한편, 사용자가 새로운 게시물을 작성한 후에 외부 웹훅(Discourse API)을 통해 이미지를 확인하고, 사용자의 게시물을 수정하는 것도 괜찮을 것 같습니다(예: 이미지를 변경하여 "관리자에 의해 이미지 삭제됨"이라는 텍스트로 대체). API를 사용하면 그런 부분이 가능해 보이지만, 그런 경우 API를 통해 실제로 “나쁜” 이미지를 삭제하는 방법에 대한 참조를 찾을 수 없습니다. 왜냐하면 나는 그런 이미지를 어딘가에 남아 있게 두는 것조차 원하지 않기 때문입니다.
@Terrapop - 고려해 볼 가치가 있는 점은 인식의 정확도입니다. 차단된 콘텐츠 중 일부를 확인할 수 있으면 ‘POSSIBLE’, ‘LIKELY’, ‘VERY_LIKELY’ 기준으로 설정이 지나치게 엄격하지 않은지 확인할 수 있어 좋습니다. 오탐(False positive)과 미탐지(False negative)는 비교적 흔한 현상입니다.
특정 ‘possibly adult’ 수준 이상의 이미지를 포함하는 게시글을 검토 대기열로 보내는 것이 더 나은 구현 방식이라고 생각합니다. 이렇게 하면 게시글이 공개되지 않으면서도, 인식이 정확하지 않았다면 승인할 수 있습니다. 거기서 거부되면 이미지가 삭제되는데, 'clean_orphan_uploads_grace_period_hours’에 설정된 시간 경과 후에 삭제된다고 알고 있습니다.