메일 전송 관련 모듈을 개발하고 있는데요, 유료 메일 서비스의 경우 webhook (수신거부 링크나 메일 발송 실패시 사용자가 설정한 URL로 에러 데이터를 POST로 날려줍니다.) 기능이 있어서, 이 주소를 모듈쪽으로 보내게 하려고 하는데요,

XE에서 POST로 오는 요청은 모두 checkCSRF 함수를 통해서 referer 값이 있는지, 없는지를 체크하고 없다면 invalid request를 반환하는 것으로 알고 있습니다. 그런데 webhook은 제가 referer 값까지 강제할 수 없어서, 이 문제를 해결할 수 있는 방법이 있는지 궁금합니다.

 

요약 : XE 모듈에서 POST 요청을 받을 때, REFERER 없이도 정상 요청 받을 수 있는 방법이 없을까요? view/controller/api 모두 상관 없습니다.

 

답변에 미리 감사드립니다 )____( 꾸벅

  • ?
    모듈 밖에서 HTTP_REFERER 값을 조작하는 방법이요.
    act값을 수동으로 확인하신 뒤, $_SERVER["HTTP_REFERER"] 값을 변경하시면 될것 같아요.

    보안상의 문제는... 따로 키 확인 절차를 추가하실테니...
  • ? ?
    음.. 그렇게되면 코어를 고쳐야 하겠죠..? 최후의 방법으로 생각해야겠습니다.
    답변 감사드립니다!
  • ? ?
    YJ소프트님께서 더 좋은 방법을 알려주셨지만...
    리퍼러 값 변경하는데 코어 수정은 필요 없을겁니다.

    그냥 해당 모듈의 파일 최상단에 쓰시면 됩니다.
    PSR에서 권장하는 방식에는 벗어나겠지만, 구현은 가능하겠지요.
  • ? ?
    아, 상단에 작성하라는 것이 어떤 말씀이신지 이해했습니다! 감사합니다.
  • profile

    action 정의시 check_csrf값을 false로 지정하면 됩니다. 1.8.38 이후 버전에서 추가된 속성입니다.

    예)
    <action name="procFileUpload" type="controller" check_csrf="false"/>

  • profile ?
    저런 설정값도 있다니.. 매뉴얼을 좀 더 꼼꼼히 읽어봐야겠네요. 너무 감사드립니다 ㅠㅠ
  • ? profile
    최근 추가된 속성이라 매뉴얼에 없을겁니다. XE 매뉴얼이 대부분 1.5 버전이나 1.7 버전을 기준으로 하고 있어서...
  • profile
    오. 메일서비스!
    우리메일이 xe로 서비스 되고 있습니다. :)