programing

이 보안 문제를 해결하는 방법

newstyles 2023. 7. 28. 21:52

이 보안 문제를 해결하는 방법

저는 10초마다 서버 컨트롤러에서 작업을 호출하는 Ajax-polling 스크립트를 구현했습니다.응답을 사용하여 다음의 내용을 대체합니다.div:

function getFoo() {
    var link = '/Secure/GetFoo';

    $.post(link, function (response) {
        $('#FooSection').replaceWith(response);
    });

    setTimeout("getFoo();", 10000);
}

이것은 https를 통해 이루어집니다.잠시 동안 "유휴" 상태가 되면 IE에 다음 메시지가 표시됩니다.

이 페이지는 제어할 수 없는 정보에 액세스하고 있습니다.이로 인해 보안 위험이 발생합니다.계속하시겠습니까?

사용자가 예를 클릭하면 페이지가 다음으로 리디렉션됩니다.div응답만 표시합니다.사용자가 아니오를 클릭하면 아무 일도 일어나지 않지만,div컨테이너가 새로 고쳐지지 않습니다.

브라우저 설정을 통해메시지를 표시하지 않을있지만 위 대화 상자에 따라 기본 를 선택할 수 있습니다.

이전에도 비슷한 문제가 제기된 적이 있지만, 유감스럽게도 해결책은 없었습니다.저는 기본적으로 안전한 연결에서도 아약스 폴링을 할 수 있도록 하고 싶습니다.아이디어 있어요?

Internet-Zone(인터넷 영역) 페이지에는 해당 대화 상자가 표시되지 않습니다.기본적으로 이 작업은 인터넷 영역에서 자동으로 차단됩니다.

인트라넷 영역에 해당 대화 상자가 나타나는 근본 원인은 다음 두 가지입니다.

XMLHTTPRequest 개체(http://blogs.msdn.com/b/ieinternals/archive/2011/04/22/ie-security-prompt-page-accessing-cross-domain-information-not-under-its-control.aspx) 를 사용하여 크로스오버 요청을 수행하려고 합니다.

HTML을 호스팅하는 OBJECT 태그를 크로스 오리진 페이지로 이동하려고 합니다.

XMLHTTPRequest 대신 XDomainRequest를 사용하면 사례 #1을 피할 수 있습니다.OBJECT 태그 대신 IFRAME을 사용하면 사례 #2를 피할 수 있습니다.

얼마 전에 AJAX 요청 후 IE가 왜 불만을 제기하는지 알 수 없어서 비슷한 문제를 겪었습니다.

저는 Firebug의 넷 콘솔을 사용하고 요청을 하나씩 검토한 후 https:// 대신 http://를 찾을 때까지 동일하게 할 것을 제안합니다. 페이지를 보지 않고 디버깅하는 것은 거의 불가능하겠지만, https를 통해 로드되지 않는 배경 이미지와 같은 것일 수 있습니다.

참고: IE라고 말씀하신 것은 알아챘지만, 이와 같은 문제는 아마도 브라우저별 문제가 아닐 것입니다. Firefox/Chrome은 IE처럼 https가 아닌 요소가 있는 것에 대해 그렇게 호들갑을 떨지 않습니다.

코드에는 두 가지가 있습니다.

POST Ajax 요청을 사용하는 이유는 무엇입니까? GET 요청은 GET 요청처럼 보이기 때문에 GET 방법이 더 나은 선택일 수 있습니다.

문제와 연결되지는 않지만 평가할 문자열과 함께 setTimeout을 사용하면 안 됩니다.첫 번째 인수로 setTimeout 변수를 지정해야 하며 이 변수가 실행할 함수여야 합니다.

function getFoo() {
    var link = '/Secure/GetFoo';

    $.get(link, function (response) {
        $('#FooSection').replaceWith(response);
    });

    window.setTimeout(getFoo, 10000);
}

프로토콜 관련 하이퍼링크를 사용해 본 적이 있습니까?//something.com/image.png)? 이 링크 또는링크를 참조하십시오.

코드에 src 속성이 "https"가 아닌 "http"로 시작하는 요소가 하나라도 있으면 IE에서 해당 메시지를 표시합니다.

가져올 데이터에 src 특성에 src="src://..." 요소가 없는 것이 확실합니까?

이전에 Ajax 호출을 통해 삽입되는 새 콘텐츠에 보안 이미지 자산이 없는 링크가 있어서 이런 일이 발생한 것을 본 적이 있습니다. 혹시 이 문제가 발생할 가능성이 있습니까?

절대 URL을 사용해 보셨습니까?

varlink = 'https://www.yourdomain.com/Secure/GetFoo';

언급URL : https://stackoverflow.com/questions/6290149/how-to-overcome-this-security-issue