Rails 3.0.9에서 HTTP 기본 인증을 사용하고 있으며 사용자가 html.erb에 일부 요소를 표시 할 권한이 있는지 확인해야합니다 파일. 어떻게해야합니까?사용자가 권한이 있는지 확인하십시오 (HTTP 기본 인증, Rails 3.0.9)
6
A
답변
10
비탈리의 접근 방식은 좋은 해결책처럼 보이지만있다 자격 증명이 올바르지 않더라도 로그인을 시도하는 사람에게 관리자 권한을 부여하는 심각한 버그입니다.
:첫째, (인증을 요구하는 행동에) 몇 가지 기능 테스트 (이 upvoted됩니다 사람들이 맹목적으로 보안 결함과 함께 "올바른"대답을 허용하지 않는 것이 희망의 응답으로이 게시)
test "admin is set with correct credentials" do
@request.env['HTTP_AUTHORIZATION'] = ActionController::HttpAuthentication::Basic.encode_credentials("user", "pass")
get :index
assert_response 200
assert_equal true, session[:admin]
end
test "admin isn't set with incorrect credentials" do
@request.env['HTTP_AUTHORIZATION'] = ActionController::HttpAuthentication::Basic.encode_credentials("user", "incorrect")
get :index
assert_response 401
assert_not_equal true, session[:admin]
end
Vitaly의 코드와 함께 실행하면 session[:admin]
이 true로 설정되어 있기 때문에 두 번째 테스트가 실패합니다.
여기에 제대로 session[:admin]
을 설정하고 모두 테스트를 통과하기 위해 내 코드 : 그것은 좋은 보인다
private
def authenticate
authenticate_or_request_with_http_basic do |user_name, password|
session[:admin] = (user_name == "name" && password == "pass")
end
end
0
당신은 기본 인증과 캉캉 작업을 할 수 있습니다,이 가이드 https://github.com/ryanb/cancan/wiki/changing-defaults을 읽고, 다음 당신이 로그인 한 사용자 이름에 따라 권한을 설정할 수 있습니다, 같은 일반적으로 캉캉를 사용합니다.
+0
하지만 비 필요한 복잡성을 추가합니다. 사용자가 로그온했는지 여부를 확인하기 위해 세션을 사용할 수 있는지 생각합니다. 어떤 아이디어? – Vitaly
관련 문제
- 1. Rails HTTP 기본 인증 실패
- 2. facebook connect : 사용자가 자바 스크립트로 권한이 있는지 확인하십시오.
- 3. 사용자가 있는지 확인하십시오 (계속 ...)
- 4. rails rspec http 기본 인증 테스트
- 5. Android 폰에서 Rails 서버의 기본 HTTP 인증
- 6. 기본 뷰어가 있는지 확인하십시오.
- 7. VBScript : 스크립트에 관리 권한이 있는지 확인하십시오.
- 8. 다른 사용자에게 파일 쓰기 권한이 있는지 확인하십시오.
- 9. 사용자가 창을 움직이고 있는지 확인하십시오.
- 10. js 사용자가 연결되어 있는지 확인하십시오.
- 11. Active Directory에 사용자가 있는지 확인하십시오.
- 12. HTTP 기본 인증
- 13. 장고 + 기본 http 인증
- 14. Authlogic으로 HTTP 기본 인증
- 15. AD 사용자가 PHP 및 adLDAP를 사용하여 차단되어 있는지 확인하십시오.
- 16. Ajax : HTTP 기본 인증 및 인증 쿠키
- 17. 스프링 보안 HTTP 기본 인증
- 18. NSURLConnection SSL HTTP 기본 인증
- 19. 사용자가 피라미드 (pylons 2)에서 권한을 가지고 있는지 확인하십시오.
- 20. 다른 사용자가 엑셀 파일을 열려 있는지 확인하십시오.
- 21. 안드로이드에 내 앱의 처음 사용자가 있는지 확인하십시오.
- 22. 사용자가 URLConnection을 사용하여 문서에 액세스 할 수 있는지 확인하십시오.
- 23. java webstart의 http 기본 인증
- 24. JBoss 4의 HTTP 기본 인증?
- 25. HTTP Jetty 서버의 기본 인증
- 26. Windows 프로세스에 기호 링크를 작성할 수있는 권한이 있는지 확인하십시오.
- 27. 사용자가 URL에 액세스 할 수있는 권한이 있는지 확인하십시오 (로그온 반환 URL과 함께 사용).
- 28. 함수에 데코레이터가 있는지 확인하십시오.
- 29. http 기본 인증 - 최대 허용 시도 횟수?
- 30. 파이썬으로 기본 HTTP 인증 3.2 (urllib.request)
감사합니다. 당신 말이 맞습니다. 어떻게 그런 실수를 저질렀는지. 많은 사람들이 그 영향을받지 않기를 바랍니다. 정답을 너무 늦게 바꾸어서 죄송합니다. 나는 그 통고에 주목하지 않았다. – Vitaly