IT TIP

"테스트 양식은 로컬 컴퓨터의 요청에만 사용할 수 있습니다."

itqueen 2020. 12. 9. 22:06
반응형

"테스트 양식은 로컬 컴퓨터의 요청에만 사용할 수 있습니다."


.Net에서 웹 서비스를 만들었으므로 서비스 파일의 주소에는 작동 방식에 대한 멋진 자동 생성 설명이 있습니다. 컴퓨터에서 페이지를 실행할 때 호스팅되는 페이지에는 테스트 값을 서비스에 제출하는 데 사용할 수있는 양식도 있습니다. 그러나 원격 컴퓨터에서는 양식을 숨기고 위에서 본 것처럼 메시지를 제공합니다.

이것에 요점이 있습니까? 나는 이것을 "더 안전하다"라고 부르는 다른 사이트를 보았다. 그러나 당신이 내게 물어 보면 누구든지 쉽게 자신의 양식을 만들 수있다.


메타 데이터를 게시하고 공개 / 비보안 웹 서비스 인 경우, 누구든지 간단한 클라이언트를 생성하여 웹 서비스를 망치는 것이 충분히 쉬울 것입니다. 이 경우 웹 클라이언트를 로컬 컴퓨터에서만 생성하는 것은 성가신 것처럼 보입니다.

그러나 서비스가 비공개이고 보안이 유지되는 경우 서버 및 서비스 이름을 가진 모든 사람에게 잠재적으로 데이터에 액세스하고 모든 종류의 해를 끼칠 수있는 인증 된 클라이언트를 제공하는 것은 엄청난 보안 허점이 될 것입니다.

서버 자체에서만 ASMX 웹 서비스 용 UI를 생성하는 정책이 우발적 인 보안 허점을 제거하면서 멋진 도구를 제공하려는 시도라고 생각합니다. WCF는이 문제를 해결했습니다. 메타 데이터가 게시 된 경우에만 클라이언트를 생성 할 수 있으며 서비스에 액세스하려면 올바른 보안을 구현해야합니다.


web.config다음 노드를 포함하도록 수정하여이 문제를 해결할 수 있습니다 .

<configuration>
    <system.web>
     <webServices>
        <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
    </system.web>
</configuration>

이렇게하면 브라우저를 통해 .asmx 웹 서비스를 방문 할 수 있습니다. 그런 다음 브라우저에서 바로 웹 서비스를 호출하고 인수를 전달하고 결과를 볼 수 있습니다.


참고로 .NET 4.0을 사용하고 있으며 동일한 문제가 발생했습니다.

그러나 나는 ...

<add name="HttpSoap12"/>
<add name="HttpSoap"/>
<add name="HttpGet"/>
<add name="HttpPost"/>

같은 영역에서 작동했습니다. 그러나 정당 HttpGet하고 HttpPost그렇지 않았습니다.


여기에 이미지 설명 입력

HTTP GET 및 HTTP POST는 기본적으로 비활성화되어 있습니다.

참고 URL : https://stackoverflow.com/questions/1028010/the-test-form-is-only-available-for-requests-from-the-local-machine

반응형