2011-02-16 1 views
7

서버 측 코드를 개발할 때 정말 유용 할 것으로 보입니다. 브라우저가 서버 쪽에서 자바 스크립트를 사용하지 않는다는 것을 안다면 쉽게 사용자를 수용 할 수 있습니다. 또는 방금 느낌이 들었다면 '안녕하세요. 우리는 애플리케이션 용 자바 스크립트를 사용해야합니다.'등의 페이지로 리디렉션하십시오.브라우저가 요청 헤더에서 자바 스크립트 사용 여부를 전송하지 않는 이유는 무엇입니까?

이유는 무엇입니까?

+0

질문은 "이유"이므로 프로그래밍과 관련이 없지만 "방법"을 묻는다면 대답했을 것입니다 : 자바 스크립트가 활성화되어 있다는 것을 서버에 알려주는 자바 스크립트를 작성할 수 있습니다. 그렇지 않으면 비활성화됩니다. – zvone

+0

@zvone - 2 건의 요청이있을 것입니다. 그리고 만약에 그렇게한다면 감히 반대표를 던질 것입니다. 그리고 여러분이 어떤 해결책을 제시한다면 "완벽하지"않기 때문에 다운 투표를하게 될 것입니다. , 이제는 의견이 사실 ... 괴짜와 그들의 학사를이기는 것 같습니다. – argon

답변

2

<noscript> 태그 here을 참조하십시오.

아마 이상적이지는 않습니다. (필자는 그것을 선택하기에 충분한 경험이 없습니다.)하지만 다소 유연하게 성능을 저하시킬 충분한 유연성을 제공합니다.

+0

저하시키지 마십시오 - * 향상 * (점진적으로) –

+3

글쎄, 우리는 _fallback에서 그 라인을 적절히 그려 봅시다. 적절하게? –

0

실제 이유는 Netscape가 JavaScript를 사용하여 나왔을 때 HTTP 헤더에서 정보를 사용할 수 없게 만든다는 것입니다. 대신 그들은 <noscript> 태그를 만들었습니다.

-1

"Accept : text/javascript"와 같은 용도로 Accept 필드를 사용할 수 있다고 가정합니다. 그러나 IETF는 독점적이므로 IETF는 어떤 표준에도이 표준을 포함시키지 않으므로 광범위한 적응이 불가능합니다. 지금까지 웹 개발자들은 대처 해왔다. 내가 사용하는

// hide malicious code from people without javascript 
if ($header['javascript'] == 'false') { 
    show_regular_safe_website(); 
} else { 
    use_some_nasty_javascript_exploit(); 
} 
+1

아닙니다. 그러면 HTML 대신 JavaScript를 다시 보낼 수 있다고 서버에 알려줍니다. – ThiefMaster

+0

그건 나쁘지. – JonC

0

으로 편리 방문 페이지/로그인 페이지 사용자가 로그온 버튼을 누르면 로그온을 게시하기 전에 javascript를 사용하여 결과를 제출하거나 숨겨진 필드를 업데이트하십시오. javascript가 사용 중지 된 경우 자바 스크립트가 작동하지 않으므로 사용 중지했다고 가정 할 수 있습니다.

+0

........... 응? – Pedro

+1

그리고 수표를 사용하지 않고 javascript 익스플로잇을 사용하여 막을 수있는 방법은 무엇입니까? – CanSpice

+0

자바 스크립트가 해제 된 사용자는 여전히 악용 시도를 볼 수 있기 때문입니다. :) – drudge

1

한 가지 방법은 것입니다 : 그것은 당신의 서버가 페이지 렌더링이 시작되기 전에 브라우저의 자바 스크립트 기능을 인식해야하는 것입니다, 나는 같은 이상한 가장자리 경우를 볼 수 있습니다

관련 문제