2017-11-13 11 views
0

일 문제어떻게 ASPX 페이지와 최근 프록시 서비스

캐시 된 자바 스크립트 코드를 새로 고침, I()는 웹 서비스를 몇 초마다 ping을하여 setInterval을 사용하여 생산 포함 된 자바 스크립트에 페이지를 배포했습니다. 다음과 같이 동작을 요약 할 수 있습니다.

upcomingEvents.aspx 페이지의 Javascript는 hitWebService.js 파일에있는 hitWebService() 함수를 호출합니다.

X 간격 값이 너무 작아서 hitWebService(), hitWebService.js 파일 자체 및 도달하려고 시도한 웹 서비스에 대한 참조가 모두 제거되었습니다.

정상적인 IP 주소에서 웹 서비스를 시작하려는 시도가 중단되었지만 프록시 서비스를 사용하는 많은 사용자로부터 조회가 시도되고 있습니다.

필자의 이론은 내 다가오는 Events.aspx와 hitWebService.js가 프록시 서비스에 의해 캐시되었다는 것입니다. 실제로 사용자가 오류 페이지를 클릭하면 리퍼러 문자열을 기록 할 때마다 (이 사용자 중 하나가 여기로 리디렉션됩니다) 곧 출시 될 Events.aspx에서 참조됩니다.

이 웹 서비스를 공격하면 IIS 로그가 불편할 정도로 채워지고 서버에서 불필요한 트래픽이 발생하는 것이 문제입니다. 콘텐츠 즉시 만료 그래서 내가 hitWebService.js 파일을 삭제

  • 제거 웹 서비스를 완전히
  • 시도 무엇

    은 또한 IIS에 더미 파일로

  • 변경된 내용 만료를 교체
  • 페이지의 .vb 코드 숨김에 Response.Cache.SetCacheability (HttpCacheability.NoCache)를 추가했습니다.
  • 완전히 변경된 사이트 재 게시
  • IIS를 다시 시작하고 IIS를 중지했다가 시작했습니다.

재미있는 비트

나는 등의 세션 세부 사항을 기록하는 UpcomingEvents.apsx에 VB에서 코드 숨김을 변경할 수 있으며 프록시 서비스 사용자를위한 거의 즉시 업데이트 할 것

    질문 사항

    제 이론이 정확하고 프록시 서비 어, 실제로 hitWebService.js 및 upcomingEvents.aspx 파일을 캐싱하고 있습니다. 위의 전략이 효과가 없다고 생각하여 코드 새로 고침을 강제로 수행 할 수있는 다른 경로가 있습니까? 내 경우

  • 답변

    0

    덕분에 많이, 내가 asp.net 캐시을 시작 아약스 전화를했다. 각 호출마다 다른 쿼리 스트링이 생길 수 있도록 자바 스크립트 날짜 번호가있는 param을 사용했습니다.이 같은

    :

    이 경우
    <script src="myScript.js?v=8912398314812" /> 
    

    당신이 컴퓨터에 액세스, 사용 바이올린도 얻을 전화 그것을 브라우저를 확인 :

    function addQueryStringAntiCache(url) 
    { 
        var d = new Date(); 
        var n = d.getTime(); 
        return url + (url.indexOf("?") == -1 ? "?" : "&") + "nocache=" + n; 
    } 
    

    당신이 스크립트 같은 일을 할 수 파일 또는 자신의 캐시를 사용하는 경우. 이 경우 metaData 또는 http 헤더를 포함하여 캐싱하지 않도록 할 수 있습니다. Check this response

    희망이 도움이 될 것입니다.