diff --git a/yesod-core/ChangeLog.md b/yesod-core/ChangeLog.md index 79718bf8..52009a40 100644 --- a/yesod-core/ChangeLog.md +++ b/yesod-core/ChangeLog.md @@ -1,3 +1,7 @@ +## 1.6.8 + +* Sets the `X-XSS-Protection` header to `1; mode=block` [#1550](https://github.com/yesodweb/yesod/pull/1550) + ## 1.6.7 * If no matches are found, `selectRep` chooses first representation regardless diff --git a/yesod-core/Yesod/Core/Class/Yesod.hs b/yesod-core/Yesod/Core/Class/Yesod.hs index 95dec6da..47764346 100644 --- a/yesod-core/Yesod/Core/Class/Yesod.hs +++ b/yesod-core/Yesod/Core/Class/Yesod.hs @@ -337,12 +337,14 @@ defaultShouldLogIO :: LogSource -> LogLevel -> IO Bool defaultShouldLogIO _ level = return $ level >= LevelInfo -- | Default implementation of 'yesodMiddleware'. Adds the response header --- \"Vary: Accept, Accept-Language\" and performs authorization checks. +-- \"Vary: Accept, Accept-Language\", \"X-XSS-Protection: 1; mode=block\", and +-- performs authorization checks. -- -- Since 1.2.0 defaultYesodMiddleware :: Yesod site => HandlerFor site res -> HandlerFor site res defaultYesodMiddleware handler = do addHeader "Vary" "Accept, Accept-Language" + addHeader "X-XSS-Protection" "1; mode=block" authorizationCheck handler diff --git a/yesod-core/test/YesodCoreTest/Header.hs b/yesod-core/test/YesodCoreTest/Header.hs index 75d038c8..f836fc59 100644 --- a/yesod-core/test/YesodCoreTest/Header.hs +++ b/yesod-core/test/YesodCoreTest/Header.hs @@ -69,9 +69,16 @@ header3Test = do assertHeader "michael" "snoyman" res assertHeader "yesod" "book" res +xssHeaderTest :: IO () +xssHeaderTest = do + runner $ do + res <- request defaultRequest {pathInfo = decodePathSegments "/header1"} + assertHeader "X-XSS-Protection" "1; mode=block" res + headerTest :: Spec headerTest = describe "Test.Header" $ do it "addHeader" addHeaderTest it "multiple header" multipleHeaderTest it "persist headers" header3Test + it "has X-XSS-Protection: 1; mode=block" xssHeaderTest diff --git a/yesod-core/yesod-core.cabal b/yesod-core/yesod-core.cabal index a679c01c..d82d6a8a 100644 --- a/yesod-core/yesod-core.cabal +++ b/yesod-core/yesod-core.cabal @@ -1,5 +1,5 @@ name: yesod-core -version: 1.6.7 +version: 1.6.8 license: MIT license-file: LICENSE author: Michael Snoyman