4
레일 4 애플리케이션이 있고 Brakeman을 실행할 때 작성 액션에서 보호되지 않은 리디렉션을 식별합니다 (올바르게). only_path에 의해 보호되지 않는 리디렉션이 치료되지 않음
+SECURITY WARNINGS+
+------------+-----------------------+---------+--------------+----------------------------------------------------------------------------------------------------------------------->>
| Confidence | Class | Method | Warning Type | Message >>
+------------+-----------------------+---------+--------------+----------------------------------------------------------------------------------------------------------------------->>
| High | PortfoliosController | create | Redirect | Possible unprotected redirect near line 14: redirect_to(+params[:referrer]+, :notice => "Portfolio was successfully cr>>
+------------+-----------------------+---------+--------------+----------------------------------------------------------------------------------------------------------------------->>
왜이 될 수 있습니다에
def create
refer_url = params[:referrer]
@portfolio = current_user.portfolios.build(portfolio_params)
if @portfolio.save
redirect_to refer_url, notice: "Portfolio was successfully created.", only_path: true
else
render :new
end
end
결과 : 경고를 치료하지 않는합니다 (Brakeman Railscast 같이) 사실 : 그러나, only_path 추가? 브레 커먼은 아직도 어떤 위험을 느끼고 있습니까?
이것은 실제로 Brakeman을 만족시키고 매우 합리적인 것입니다. 고맙습니다! '''경우 PARAMS [: 참조 자] = ~ URI :: 정규 표현식 refer_url = URI.parse (PARAMS [: 리퍼러). 다른 경로 – thusson
나는 그것을 제어 흐름에 대한 예외를 사용하는 것이 더없는 것 같아요 refer_url = "some_default" end''' – haslo