Extra Form
PHP PHP 7.4
CMS Rhymix 2.1

필요에 의해 rx 모듈 한개를 제작하고 있습니다.

 

제목과 같이, rxe가 아닌 외부에서 해당 모듈 url에 post로 값을 넘겨 받아서, 값을 확인하는 기능을 넣으려고 하는데요.

 

test.controller.php

class testController extends test
{
    public function procTestPost()
    {
        echo $_POST['test'];
        die();
    }
}

 

module.xml

<?xml version="1.0" encoding="utf-8"?>
<module>
    <permissions>
    </permissions>
    <actions>
        <action name="procTestPost" type="controller" />
    </actions>
</module>

 

url

https://domain.com/index.php?module=test&act=procTestPost

 

결과로 떨어진 오류값이 "HTTP/1.1 403 Forbidden" 입니다.

 

rxe form 을 거치지 않고, 바이너리에서 post로 값을 밀어넣으려면 어떤방법이 좋을지 고수님들의 답변 부탁드립니다.

  • profile

    1. URL에 act=procTestPost라고 쓰셨다면 POST가 아니라 GET으로 요청하고 계신 거죠. POST라면 URL에는 index.php까지만 들어가고 나머지 파라미터들은 따로 제출할 테니까요.

     

    2. POST로 요청할 경우 CSRF 방어 로직이 기본 적용됩니다. 동일한 도메인의 리퍼러를 넣어 주거나, 사이트 보안 설정에 따라서는 토큰값을 넣어야 할 수도 있습니다. 이런 것까지 맞춰주기 어렵다면 module.xml에서 해당 action에 check_csrf="false" 속성을 추가하여 CSRF 방어 기능을 꺼 보세요.

     

    3. 결과의 상태값(403 Forbidden)뿐 아니라 결과로 나온 내용도 확인한다면 정확히 어디에서 어떤 이유로 접근이 거부되었는지 더 자세히 알 수 있습니다.

  • profile profile
    감사합니다. 말씀 주신 1번 2번 항목으로 해결했습니다. 정말 감사드려요.