hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Nauroth (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-12691) Add CSRF Filter for REST APIs to Hadoop Common
Date Wed, 13 Jan 2016 23:30:40 GMT

    [ https://issues.apache.org/jira/browse/HADOOP-12691?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15097275#comment-15097275
] 

Chris Nauroth commented on HADOOP-12691:
----------------------------------------

Hi [~lmccay].  This looks great, and thank you for the design document.  I have just a few
minor comments.

# Should we add TRACE to {{METHODS_TO_IGNORE_DEFAULT}}?
# Could you add some documentation to HttpAuthentication.md?  I don't think it needs a lot
of documentation, but a mention of what it does and how to configure it would be great.
# The design document contains this statement:
bq. Failure results in a 403 forbidden or 400 bad_request HTTP status response.
In the code though, I only saw it sending {{SC_BAD_REQUEST}}.  Is there supposed to be another
case for sending {{SC_FORBIDDEN}}?  (I think it's fine how it is.  I only mention this because
I noticed a discrepancy between the doc and the code.)
# Can you please remove this?
{code}
  /* (non-Javadoc)
   * @see javax.servlet.Filter#destroy()
   */
{code}
We prefer not to put those in the Hadoop codebase.
# Several tests have the comment "X-XSRF HAS been sent", but they are really tests that don't
send the header: {{testMissingCustomHeaderConfig_badRequest}}, {{testMissingHeaderNoMethodsToIgnoreConfig_badRequest}},
{{testMissingHeaderIgnoreGETMethodConfig_goodRequest}} and {{testMissingHeaderIgnoreMultiMethodConfig_goodRequest}}.
# Is {{testMissingCustomHeaderConfig_badRequest}} supposed to configure a custom header?
# The filter class's dependency on {{FilterConfig}} is for 2 method calls to {{getInitParameter}}.
 It would be less total code if we mocked those 2 calls and removed the full definition of
the extra {{FilterConfigTest}} class.  Do you think that change makes sense?

> Add CSRF Filter for REST APIs to Hadoop Common
> ----------------------------------------------
>
>                 Key: HADOOP-12691
>                 URL: https://issues.apache.org/jira/browse/HADOOP-12691
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: security
>            Reporter: Larry McCay
>            Assignee: Larry McCay
>             Fix For: 3.0.0
>
>         Attachments: CSRFProtectionforRESTAPIs.pdf, HADOOP-12691-001.patch, HADOOP-12691-002.patch
>
>
> CSRF prevention for REST APIs can be provided through a common servlet filter. This filter
would check for the existence of an expected (configurable) HTTP header - such as X-XSRF-Header.
> The fact that CSRF attacks are entirely browser based means that the above approach can
ensure that requests are coming from either: applications served by the same origin as the
REST API or that there is explicit policy configuration that allows the setting of a header
on XmlHttpRequest from another origin.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message