에서 예상대로 작동하지 않는 것은내 장고 템플릿 부울 변수는 자바 스크립트 여기
<script>
var auth_status = "{{ user.is_authenticated }}"
</script>
{% block scripts %} {% endblock %}
내 사이트에있는 스크립트의 나머지 블록 스크립트에 내 base.html 헤더의 코드입니다. (스크립트 블록 내에서 스크립트 태그 내에서) 나는이 코드를 가지고 아이 템플릿에서
, if (auth_status) {
//something
}
이 켜져 있어야 오프는 경우에 따라 때 손에서 오류가 auth_status은 항상 참이다 사용자가 로그인했습니다. 오류가 아니어야하므로 Request_context가 템플리트에 전달되고 있습니다.
감사합니다 나는 당신의 auth_status
변수가 아닌 문자열 부울 것 같다 무엇을보고 들어
질문에 대한 전망이 좋은 관계없는, 그러나 (user_is_authenticated가) {물건을 할 경우 '하는 것보다 인식; }'이 JS 변수의 값에 실제로 의존하는 경우 보안 문제가 될 수 있습니다. 사용자는 실행 전에 JS 변수의 값을 수정할 수 있습니다. –
그래서 사용자가 어떻게 든 auth_status = true를 설정할 수 있다고 말하는가? 그래서 js var을 우회하는 것이 유효한 해결 방법이 될까요? 예 : if ({{user.is_authenticated | yesno : "true, false"}}) 대 if (auth_status) ?? –
악의적 인 사용자가 귀하의 페이지 소스 코드를 가져 와서 그들이 원하는 모든 것을 바꿀 수 있습니다. ** ** 보안 클라이언트 측 (즉, JS에서)을 구현할 수있는 ** 방법이 **없고 ** 해결 방법은 없습니다 **, 모든 보안/액세스 제어는 서버 측에서 수행해야합니다 (즉, 당신의 파이썬 코드에서). JS는 동적으로 실행되는 응용 프로그램 코드의 확장이 아니며 다른 제약 조건 인 * 다른 내용 *입니다. –