2016-03-30 13 views
1

Lift 3 ve lift-ng (Angular) ile temel bir sohbet uygulaması uygulamaya çalışıyorum. Çoğunlukla, bu çalışıyor. Ancak, benim (sunucu tarafında) bu uyarı kaydeder alıyorum:ContentSecurityPolicyViolation

[qtp1721931908-24] WARN net.liftweb.http.ContentSecurityPolicyViolation - biz yorumlamak olamazdı bir içerik güvenlik ihlali raporu var: 'Full ({"csp-report": {"document-uri": "http://localhost:8081/", "referrer": "", "ihlal edilen yönerge": "script-src ' güvensiz-değerlendirme" 'kendiniz', "effective-directive": "script-src", "original-policy": "default-src " self "; img-src *; script-src 'güvensiz-değerlendirme' 'kendiliğini'; style-src 'self' 'Güvenli olmayan satır içi', rapor-uri /lift/content-security-policy-report "," blocked-uri ":" inline "," statu s-kodu ": 200}}).'

Ne nasıl ihlali neyin neden olduğunu izini olduğunu bilmek ister misiniz? Kodun her bir parçasını dikkatle yorumlamak zorunda kalmadan kodun veya bağlamanın hangi bölümünün ortaya çıkabileceğini ya da nasıl daraltılacağını belirsiz buluyorum.

Kolayca benim Boot.scala bu SecurityRule kurarak ihlal kurtulabilirsiniz:

LiftRules.securityRules =() => { 
    SecurityRules(content = Some(ContentSecurityPolicy(
    scriptSources = List(ContentSourceRestriction.Self, 
     ContentSourceRestriction.UnsafeInline, 
     ContentSourceRestriction.UnsafeEval) 
))) 
} 

Ancak, ben güvensiz inlining/eval kullanmaktan kaçınmak istiyorum.

cevap

1

Tarayıcınızın geliştirici konsoluna bakarsanız, satır içi koduna bir bağlantı içerebilir. Örneğin.

CSP Error in Firefox Console

ben tıklandığında "karma: 2: 0" o kusurlu kod oldu tam olarak sayfanın html kaynağına, çizgi 2, karakter 0 götürdü:

inline script Dikkat edilmesi gereken tek şey, bir çok eklentinin (örneğin, son geçiş) bu uyarıyı oluşturmasıdır. Test ederken tüm eklentileri devre dışı bıraktığınızdan emin olun.