Author: krisden
Date: Fri Mar 13 15:01:22 2020
New Revision: 1875157

URL: http://svn.apache.org/viewvc?rev=1875157&view=rev
Log:
KNOX-2291 - Improve WebAppSec docs around cors.enabled

Modified:
    knox/site/books/knox-0-12-0/user-guide.html
    knox/site/books/knox-0-13-0/user-guide.html
    knox/site/books/knox-0-14-0/user-guide.html
    knox/site/books/knox-1-0-0/user-guide.html
    knox/site/books/knox-1-1-0/user-guide.html
    knox/site/books/knox-1-2-0/user-guide.html
    knox/site/books/knox-1-3-0/user-guide.html
    knox/site/books/knox-1-4-0/user-guide.html
    knox/site/index.html
    knox/site/issue-management.html
    knox/site/licenses.html
    knox/site/mailing-lists.html
    knox/site/project-info.html
    knox/site/team.html
    knox/trunk/books/0.10.0/config_pac4j_provider.md
    knox/trunk/books/0.10.0/config_webappsec_provider.md
    knox/trunk/books/0.11.0/config_pac4j_provider.md
    knox/trunk/books/0.11.0/config_webappsec_provider.md
    knox/trunk/books/0.12.0/config_pac4j_provider.md
    knox/trunk/books/0.12.0/config_webappsec_provider.md
    knox/trunk/books/0.13.0/config_pac4j_provider.md
    knox/trunk/books/0.13.0/config_webappsec_provider.md
    knox/trunk/books/0.14.0/config_pac4j_provider.md
    knox/trunk/books/0.14.0/config_webappsec_provider.md
    knox/trunk/books/0.7.0/config_webappsec_provider.md
    knox/trunk/books/0.8.0/config_pac4j_provider.md
    knox/trunk/books/0.8.0/config_webappsec_provider.md
    knox/trunk/books/0.9.0/config_pac4j_provider.md
    knox/trunk/books/0.9.0/config_webappsec_provider.md
    knox/trunk/books/0.9.1/config_pac4j_provider.md
    knox/trunk/books/0.9.1/config_webappsec_provider.md
    knox/trunk/books/1.0.0/config_pac4j_provider.md
    knox/trunk/books/1.0.0/config_webappsec_provider.md
    knox/trunk/books/1.1.0/config_pac4j_provider.md
    knox/trunk/books/1.1.0/config_webappsec_provider.md
    knox/trunk/books/1.2.0/config_pac4j_provider.md
    knox/trunk/books/1.2.0/config_webappsec_provider.md
    knox/trunk/books/1.3.0/config_pac4j_provider.md
    knox/trunk/books/1.3.0/config_webappsec_provider.md
    knox/trunk/books/1.4.0/config_pac4j_provider.md
    knox/trunk/books/1.4.0/config_webappsec_provider.md

Modified: knox/site/books/knox-0-12-0/user-guide.html
URL: 
http://svn.apache.org/viewvc/knox/site/books/knox-0-12-0/user-guide.html?rev=1875157&r1=1875156&r2=1875157&view=diff
==============================================================================
--- knox/site/books/knox-0-12-0/user-guide.html (original)
+++ knox/site/books/knox-0-12-0/user-guide.html Fri Mar 13 15:01:22 2020
@@ -2864,15 +2864,6 @@ APACHE_HOME/bin/apachectl -k stop
 <p>Use Knox samples.</p>
 <h3><a id="Web+App+Security+Provider">Web App Security Provider</a> <a 
href="#Web+App+Security+Provider"><img 
src="markbook-section-link.png"/></a></h3>
 <p>Knox is a Web API (REST) Gateway for Hadoop. The fact that REST 
interactions are HTTP based means that they are vulnerable to a number of web 
application security vulnerabilities. This project introduces a web application 
security provider for plugging in various protection filters.</p>
-<p>There are two aspects of web application security that are handled now: 
Cross Site Request Forgery (CSRF) and Cross Origin Resource Sharing. Others 
will be added in future releases.</p>
-<h4><a id="CSRF">CSRF</a> <a href="#CSRF"><img 
src="markbook-section-link.png"/></a></h4>
-<p>Cross site request forgery (CSRF) attacks attempt to force an authenticated 
user to execute functionality without their knowledge. By presenting them with 
a link or image that when clicked invokes a request to another site with which 
the user may have already established an active session.</p>
-<p>CSRF is entirely a browser based attack. Some background knowledge of how 
browsers work enables us to provide a filter that will prevent CSRF attacks. 
HTTP requests from a web browser performed via form, image, iframe, etc are 
unable to set custom HTTP headers. The only way to create a HTTP request from a 
browser with a custom HTTP header is to use a technology such as Javascript 
XMLHttpRequest or Flash. These technologies can set custom HTTP headers, but 
have security policies built in to prevent web sites from sending requests to 
each other unless specifically allowed by policy. </p>
-<p>This means that a website www.bad.com cannot send a request to <a 
href="http://bank.example.com";>http://bank.example.com</a> with the custom 
header X-XSRF-Header unless they use a technology such as a XMLHttpRequest. 
That technology would prevent such a request from being made unless the 
bank.example.com domain specifically allowed it. This then results in a REST 
endpoint that can only be called via XMLHttpRequest (or similar technology).</p>
-<p>NOTE: by enabling this protection within the topology, this custom header 
will be required for <em>all</em> clients that interact with it - not just 
browsers.</p>
-<h4><a id="CORS">CORS</a> <a href="#CORS"><img 
src="markbook-section-link.png"/></a></h4>
-<p>For security reasons, browsers restrict cross-origin HTTP requests 
initiated from within scripts. For example, XMLHttpRequest follows the 
same-origin policy. So, a web application using XMLHttpRequest could only make 
HTTP requests to its own domain. To improve web applications, developers asked 
browser vendors to allow XMLHttpRequest to make cross-domain requests.</p>
-<p>Cross Origin Resource Sharing is a way to explicitly alter the same-origin 
policy for a given application or API. In order to allow for applications to 
make cross domain requests through Apache Knox, we need to configure the CORS 
filter of the WebAppSec provider.</p>
 <h4><a id="Configuration">Configuration</a> <a href="#Configuration"><img 
src="markbook-section-link.png"/></a></h4>
 <h5><a id="Overview">Overview</a> <a href="#Overview"><img 
src="markbook-section-link.png"/></a></h5>
 <p>As with all providers in the Knox gateway, the web app security provider is 
configured through provider params. Unlike many other providers, the web app 
security provider may actually host multiple vulnerability/security filters. 
Currently, we only have implementations for CSRF and CORS but others will 
follow and you may be interested in creating your own.</p>
@@ -2884,13 +2875,17 @@ APACHE_HOME/bin/apachectl -k stop
     
&lt;param&gt;&lt;name&gt;csrf.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;csrf.customHeader&lt;/name&gt;&lt;value&gt;X-XSRF-Header&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;csrf.methodsToIgnore&lt;/name&gt;&lt;value&gt;GET,OPTIONS,HEAD&lt;/value&gt;&lt;/param&gt;
-    
&lt;param&gt;&lt;name&gt;cors.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
+    
&lt;param&gt;&lt;name&gt;cors.enabled&lt;/name&gt;&lt;value&gt;false&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;xframe.options.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
 &lt;/provider&gt;
 </code></pre>
 <h4><a id="Descriptions">Descriptions</a> <a href="#Descriptions"><img 
src="markbook-section-link.png"/></a></h4>
 <p>The following tables describes the configuration options for the web app 
security provider:</p>
 <h5><a id="CSRF">CSRF</a> <a href="#CSRF"><img 
src="markbook-section-link.png"/></a></h5>
+<p>Cross site request forgery (CSRF) attacks attempt to force an authenticated 
user to execute functionality without their knowledge. By presenting them with 
a link or image that when clicked invokes a request to another site with which 
the user may have already established an active session.</p>
+<p>CSRF is entirely a browser based attack. Some background knowledge of how 
browsers work enables us to provide a filter that will prevent CSRF attacks. 
HTTP requests from a web browser performed via form, image, iframe, etc are 
unable to set custom HTTP headers. The only way to create a HTTP request from a 
browser with a custom HTTP header is to use a technology such as Javascript 
XMLHttpRequest or Flash. These technologies can set custom HTTP headers, but 
have security policies built in to prevent web sites from sending requests to 
each other unless specifically allowed by policy. </p>
+<p>This means that a website www.bad.com cannot send a request to <a 
href="http://bank.example.com";>http://bank.example.com</a> with the custom 
header X-XSRF-Header unless they use a technology such as a XMLHttpRequest. 
That technology would prevent such a request from being made unless the 
bank.example.com domain specifically allowed it. This then results in a REST 
endpoint that can only be called via XMLHttpRequest (or similar technology).</p>
+<p>NOTE: by enabling this protection within the topology, this custom header 
will be required for <em>all</em> clients that interact with it - not just 
browsers.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -2925,6 +2920,8 @@ APACHE_HOME/bin/apachectl -k stop
 <p>Omitting the &ndash;header &ldquo;X-XSRF-Header: valid&rdquo; above should 
result in an HTTP 400 bad_request.</p>
 <p>Disabling the provider will then allow a request that is missing the header 
through. </p>
 <h5><a id="CORS">CORS</a> <a href="#CORS"><img 
src="markbook-section-link.png"/></a></h5>
+<p>For security reasons, browsers restrict cross-origin HTTP requests 
initiated from within scripts. For example, XMLHttpRequest follows the 
same-origin policy. So, a web application using XMLHttpRequest could only make 
HTTP requests to its own domain. To improve web applications, developers asked 
browser vendors to allow XMLHttpRequest to make cross-domain requests.</p>
+<p>Cross Origin Resource Sharing is a way to explicitly alter the same-origin 
policy for a given application or API. In order to allow for applications to 
make cross domain requests through Apache Knox, we need to configure the CORS 
filter of the WebAppSec provider.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -2937,7 +2934,7 @@ APACHE_HOME/bin/apachectl -k stop
   <tbody>
     <tr>
       <td>cors.enabled </td>
-      <td>This param enables the CORS capabilities</td>
+      <td>Setting this parameter to true allows cross origin requests. The 
default of false prevents cross origin requests.</td>
       <td>false</td>
     </tr>
     <tr>
@@ -3320,15 +3317,6 @@ APACHE_HOME/bin/apachectl -k stop
 <p>To enable SSO for REST API access through the Knox gateway, you need to 
protect your Hadoop services with the the SSOCookieProvider configured to use 
the KnoxSSO service (sandbox.xml topology):</p>
 <pre><code>&lt;gateway&gt;
   &lt;provider&gt;
-    &lt;role&gt;webappsec&lt;/role&gt;
-    &lt;name&gt;WebAppSec&lt;/name&gt;
-    &lt;enabled&gt;true&lt;/enabled&gt;
-    &lt;param&gt;
-      &lt;name&gt;cors.enabled&lt;/name&gt;
-      &lt;value&gt;true&lt;/value&gt;
-    &lt;/param&gt;
-  &lt;/provider&gt;
-  &lt;provider&gt;
     &lt;role&gt;federation&lt;/role&gt;
     &lt;name&gt;SSOCookieProvider&lt;/name&gt;
     &lt;enabled&gt;true&lt;/enabled&gt;

Modified: knox/site/books/knox-0-13-0/user-guide.html
URL: 
http://svn.apache.org/viewvc/knox/site/books/knox-0-13-0/user-guide.html?rev=1875157&r1=1875156&r2=1875157&view=diff
==============================================================================
--- knox/site/books/knox-0-13-0/user-guide.html (original)
+++ knox/site/books/knox-0-13-0/user-guide.html Fri Mar 13 15:01:22 2020
@@ -2918,15 +2918,6 @@ APACHE_HOME/bin/apachectl -k stop
 <p>Use Knox samples.</p>
 <h3><a id="Web+App+Security+Provider">Web App Security Provider</a> <a 
href="#Web+App+Security+Provider"><img 
src="markbook-section-link.png"/></a></h3>
 <p>Knox is a Web API (REST) Gateway for Hadoop. The fact that REST 
interactions are HTTP based means that they are vulnerable to a number of web 
application security vulnerabilities. This project introduces a web application 
security provider for plugging in various protection filters.</p>
-<p>There are two aspects of web application security that are handled now: 
Cross Site Request Forgery (CSRF) and Cross Origin Resource Sharing. Others 
will be added in future releases.</p>
-<h4><a id="CSRF">CSRF</a> <a href="#CSRF"><img 
src="markbook-section-link.png"/></a></h4>
-<p>Cross site request forgery (CSRF) attacks attempt to force an authenticated 
user to execute functionality without their knowledge. By presenting them with 
a link or image that when clicked invokes a request to another site with which 
the user may have already established an active session.</p>
-<p>CSRF is entirely a browser based attack. Some background knowledge of how 
browsers work enables us to provide a filter that will prevent CSRF attacks. 
HTTP requests from a web browser performed via form, image, iframe, etc are 
unable to set custom HTTP headers. The only way to create a HTTP request from a 
browser with a custom HTTP header is to use a technology such as Javascript 
XMLHttpRequest or Flash. These technologies can set custom HTTP headers, but 
have security policies built in to prevent web sites from sending requests to 
each other unless specifically allowed by policy. </p>
-<p>This means that a website www.bad.com cannot send a request to <a 
href="http://bank.example.com";>http://bank.example.com</a> with the custom 
header X-XSRF-Header unless they use a technology such as a XMLHttpRequest. 
That technology would prevent such a request from being made unless the 
bank.example.com domain specifically allowed it. This then results in a REST 
endpoint that can only be called via XMLHttpRequest (or similar technology).</p>
-<p>NOTE: by enabling this protection within the topology, this custom header 
will be required for <em>all</em> clients that interact with it - not just 
browsers.</p>
-<h4><a id="CORS">CORS</a> <a href="#CORS"><img 
src="markbook-section-link.png"/></a></h4>
-<p>For security reasons, browsers restrict cross-origin HTTP requests 
initiated from within scripts. For example, XMLHttpRequest follows the 
same-origin policy. So, a web application using XMLHttpRequest could only make 
HTTP requests to its own domain. To improve web applications, developers asked 
browser vendors to allow XMLHttpRequest to make cross-domain requests.</p>
-<p>Cross Origin Resource Sharing is a way to explicitly alter the same-origin 
policy for a given application or API. In order to allow for applications to 
make cross domain requests through Apache Knox, we need to configure the CORS 
filter of the WebAppSec provider.</p>
 <h4><a id="Configuration">Configuration</a> <a href="#Configuration"><img 
src="markbook-section-link.png"/></a></h4>
 <h5><a id="Overview">Overview</a> <a href="#Overview"><img 
src="markbook-section-link.png"/></a></h5>
 <p>As with all providers in the Knox gateway, the web app security provider is 
configured through provider params. Unlike many other providers, the web app 
security provider may actually host multiple vulnerability/security filters. 
Currently, we only have implementations for CSRF and CORS but others will 
follow and you may be interested in creating your own.</p>
@@ -2938,13 +2929,17 @@ APACHE_HOME/bin/apachectl -k stop
     
&lt;param&gt;&lt;name&gt;csrf.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;csrf.customHeader&lt;/name&gt;&lt;value&gt;X-XSRF-Header&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;csrf.methodsToIgnore&lt;/name&gt;&lt;value&gt;GET,OPTIONS,HEAD&lt;/value&gt;&lt;/param&gt;
-    
&lt;param&gt;&lt;name&gt;cors.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
+    
&lt;param&gt;&lt;name&gt;cors.enabled&lt;/name&gt;&lt;value&gt;false&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;xframe.options.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
 &lt;/provider&gt;
 </code></pre>
 <h4><a id="Descriptions">Descriptions</a> <a href="#Descriptions"><img 
src="markbook-section-link.png"/></a></h4>
 <p>The following tables describes the configuration options for the web app 
security provider:</p>
 <h5><a id="CSRF">CSRF</a> <a href="#CSRF"><img 
src="markbook-section-link.png"/></a></h5>
+<p>Cross site request forgery (CSRF) attacks attempt to force an authenticated 
user to execute functionality without their knowledge. By presenting them with 
a link or image that when clicked invokes a request to another site with which 
the user may have already established an active session.</p>
+<p>CSRF is entirely a browser based attack. Some background knowledge of how 
browsers work enables us to provide a filter that will prevent CSRF attacks. 
HTTP requests from a web browser performed via form, image, iframe, etc are 
unable to set custom HTTP headers. The only way to create a HTTP request from a 
browser with a custom HTTP header is to use a technology such as Javascript 
XMLHttpRequest or Flash. These technologies can set custom HTTP headers, but 
have security policies built in to prevent web sites from sending requests to 
each other unless specifically allowed by policy. </p>
+<p>This means that a website www.bad.com cannot send a request to <a 
href="http://bank.example.com";>http://bank.example.com</a> with the custom 
header X-XSRF-Header unless they use a technology such as a XMLHttpRequest. 
That technology would prevent such a request from being made unless the 
bank.example.com domain specifically allowed it. This then results in a REST 
endpoint that can only be called via XMLHttpRequest (or similar technology).</p>
+<p>NOTE: by enabling this protection within the topology, this custom header 
will be required for <em>all</em> clients that interact with it - not just 
browsers.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -2979,6 +2974,8 @@ APACHE_HOME/bin/apachectl -k stop
 <p>Omitting the &ndash;header &ldquo;X-XSRF-Header: valid&rdquo; above should 
result in an HTTP 400 bad_request.</p>
 <p>Disabling the provider will then allow a request that is missing the header 
through. </p>
 <h5><a id="CORS">CORS</a> <a href="#CORS"><img 
src="markbook-section-link.png"/></a></h5>
+<p>For security reasons, browsers restrict cross-origin HTTP requests 
initiated from within scripts. For example, XMLHttpRequest follows the 
same-origin policy. So, a web application using XMLHttpRequest could only make 
HTTP requests to its own domain. To improve web applications, developers asked 
browser vendors to allow XMLHttpRequest to make cross-domain requests.</p>
+<p>Cross Origin Resource Sharing is a way to explicitly alter the same-origin 
policy for a given application or API. In order to allow for applications to 
make cross domain requests through Apache Knox, we need to configure the CORS 
filter of the WebAppSec provider.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -2991,7 +2988,7 @@ APACHE_HOME/bin/apachectl -k stop
   <tbody>
     <tr>
       <td>cors.enabled </td>
-      <td>This param enables the CORS capabilities</td>
+      <td>Setting this parameter to true allows cross origin requests. The 
default of false prevents cross origin requests.</td>
       <td>false</td>
     </tr>
     <tr>
@@ -3374,15 +3371,6 @@ APACHE_HOME/bin/apachectl -k stop
 <p>To enable SSO for REST API access through the Knox gateway, you need to 
protect your Hadoop services with the SSOCookieProvider configured to use the 
KnoxSSO service (sandbox.xml topology):</p>
 <pre><code>&lt;gateway&gt;
   &lt;provider&gt;
-    &lt;role&gt;webappsec&lt;/role&gt;
-    &lt;name&gt;WebAppSec&lt;/name&gt;
-    &lt;enabled&gt;true&lt;/enabled&gt;
-    &lt;param&gt;
-      &lt;name&gt;cors.enabled&lt;/name&gt;
-      &lt;value&gt;true&lt;/value&gt;
-    &lt;/param&gt;
-  &lt;/provider&gt;
-  &lt;provider&gt;
     &lt;role&gt;federation&lt;/role&gt;
     &lt;name&gt;SSOCookieProvider&lt;/name&gt;
     &lt;enabled&gt;true&lt;/enabled&gt;

Modified: knox/site/books/knox-0-14-0/user-guide.html
URL: 
http://svn.apache.org/viewvc/knox/site/books/knox-0-14-0/user-guide.html?rev=1875157&r1=1875156&r2=1875157&view=diff
==============================================================================
--- knox/site/books/knox-0-14-0/user-guide.html (original)
+++ knox/site/books/knox-0-14-0/user-guide.html Fri Mar 13 15:01:22 2020
@@ -3919,17 +3919,6 @@ APACHE_HOME/bin/apachectl -k stop
 <p>Use Knox samples.</p>
 <h3><a id="Web+App+Security+Provider">Web App Security Provider</a> <a 
href="#Web+App+Security+Provider"><img 
src="markbook-section-link.png"/></a></h3>
 <p>Knox is a Web API (REST) Gateway for Hadoop. The fact that REST 
interactions are HTTP based means that they are vulnerable to a number of web 
application security vulnerabilities. This project introduces a web application 
security provider for plugging in various protection filters.</p>
-<p>There are three aspects of web application security that are handled now: 
Cross Site Request Forgery (CSRF), Cross Origin Resource Sharing and HTTP 
Strict-Transport-Security. Others will be added in future releases.</p>
-<h4><a id="CSRF">CSRF</a> <a href="#CSRF"><img 
src="markbook-section-link.png"/></a></h4>
-<p>Cross site request forgery (CSRF) attacks attempt to force an authenticated 
user to execute functionality without their knowledge. By presenting them with 
a link or image that when clicked invokes a request to another site with which 
the user may have already established an active session.</p>
-<p>CSRF is entirely a browser based attack. Some background knowledge of how 
browsers work enables us to provide a filter that will prevent CSRF attacks. 
HTTP requests from a web browser performed via form, image, iframe, etc are 
unable to set custom HTTP headers. The only way to create a HTTP request from a 
browser with a custom HTTP header is to use a technology such as Javascript 
XMLHttpRequest or Flash. These technologies can set custom HTTP headers, but 
have security policies built in to prevent web sites from sending requests to 
each other unless specifically allowed by policy. </p>
-<p>This means that a website www.bad.com cannot send a request to <a 
href="http://bank.example.com";>http://bank.example.com</a> with the custom 
header X-XSRF-Header unless they use a technology such as a XMLHttpRequest. 
That technology would prevent such a request from being made unless the 
bank.example.com domain specifically allowed it. This then results in a REST 
endpoint that can only be called via XMLHttpRequest (or similar technology).</p>
-<p>NOTE: by enabling this protection within the topology, this custom header 
will be required for <em>all</em> clients that interact with it - not just 
browsers.</p>
-<h4><a id="CORS">CORS</a> <a href="#CORS"><img 
src="markbook-section-link.png"/></a></h4>
-<p>For security reasons, browsers restrict cross-origin HTTP requests 
initiated from within scripts. For example, XMLHttpRequest follows the 
same-origin policy. So, a web application using XMLHttpRequest could only make 
HTTP requests to its own domain. To improve web applications, developers asked 
browser vendors to allow XMLHttpRequest to make cross-domain requests.</p>
-<p>Cross Origin Resource Sharing is a way to explicitly alter the same-origin 
policy for a given application or API. In order to allow for applications to 
make cross domain requests through Apache Knox, we need to configure the CORS 
filter of the WebAppSec provider.</p>
-<h4><a id="HTTP+Strict-Tranport-Security+-+HSTS">HTTP Strict-Tranport-Security 
- HSTS</a> <a href="#HTTP+Strict-Tranport-Security+-+HSTS"><img 
src="markbook-section-link.png"/></a></h4>
-<p>HTTP Strict Transport Security (HSTS) is a web security policy mechanism 
which helps to protect websites against protocol downgrade attacks and cookie 
hijacking. It allows web servers to declare that web browsers (or other 
complying user agents) should only interact with it using secure HTTPS 
connections and never via the insecure HTTP protocol.</p>
 <h4><a id="Configuration">Configuration</a> <a href="#Configuration"><img 
src="markbook-section-link.png"/></a></h4>
 <h5><a id="Overview">Overview</a> <a href="#Overview"><img 
src="markbook-section-link.png"/></a></h5>
 <p>As with all providers in the Knox gateway, the web app security provider is 
configured through provider params. Unlike many other providers, the web app 
security provider may actually host multiple vulnerability/security filters. 
Currently, we only have implementations for CSRF, CORS and HTTP STS but others 
will follow and you may be interested in creating your own.</p>
@@ -3941,7 +3930,7 @@ APACHE_HOME/bin/apachectl -k stop
     
&lt;param&gt;&lt;name&gt;csrf.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;csrf.customHeader&lt;/name&gt;&lt;value&gt;X-XSRF-Header&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;csrf.methodsToIgnore&lt;/name&gt;&lt;value&gt;GET,OPTIONS,HEAD&lt;/value&gt;&lt;/param&gt;
-    
&lt;param&gt;&lt;name&gt;cors.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
+    
&lt;param&gt;&lt;name&gt;cors.enabled&lt;/name&gt;&lt;value&gt;false&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;xframe-options.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;strict.transport.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
 &lt;/provider&gt;
@@ -3949,6 +3938,10 @@ APACHE_HOME/bin/apachectl -k stop
 <h4><a id="Descriptions">Descriptions</a> <a href="#Descriptions"><img 
src="markbook-section-link.png"/></a></h4>
 <p>The following tables describes the configuration options for the web app 
security provider:</p>
 <h5><a id="CSRF">CSRF</a> <a href="#CSRF"><img 
src="markbook-section-link.png"/></a></h5>
+<p>Cross site request forgery (CSRF) attacks attempt to force an authenticated 
user to execute functionality without their knowledge. By presenting them with 
a link or image that when clicked invokes a request to another site with which 
the user may have already established an active session.</p>
+<p>CSRF is entirely a browser based attack. Some background knowledge of how 
browsers work enables us to provide a filter that will prevent CSRF attacks. 
HTTP requests from a web browser performed via form, image, iframe, etc are 
unable to set custom HTTP headers. The only way to create a HTTP request from a 
browser with a custom HTTP header is to use a technology such as Javascript 
XMLHttpRequest or Flash. These technologies can set custom HTTP headers, but 
have security policies built in to prevent web sites from sending requests to 
each other unless specifically allowed by policy. </p>
+<p>This means that a website www.bad.com cannot send a request to <a 
href="http://bank.example.com";>http://bank.example.com</a> with the custom 
header X-XSRF-Header unless they use a technology such as a XMLHttpRequest. 
That technology would prevent such a request from being made unless the 
bank.example.com domain specifically allowed it. This then results in a REST 
endpoint that can only be called via XMLHttpRequest (or similar technology).</p>
+<p>NOTE: by enabling this protection within the topology, this custom header 
will be required for <em>all</em> clients that interact with it - not just 
browsers.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -3983,6 +3976,8 @@ APACHE_HOME/bin/apachectl -k stop
 <p>Omitting the &ndash;header &ldquo;X-XSRF-Header: valid&rdquo; above should 
result in an HTTP 400 bad_request.</p>
 <p>Disabling the provider will then allow a request that is missing the header 
through. </p>
 <h5><a id="CORS">CORS</a> <a href="#CORS"><img 
src="markbook-section-link.png"/></a></h5>
+<p>For security reasons, browsers restrict cross-origin HTTP requests 
initiated from within scripts. For example, XMLHttpRequest follows the 
same-origin policy. So, a web application using XMLHttpRequest could only make 
HTTP requests to its own domain. To improve web applications, developers asked 
browser vendors to allow XMLHttpRequest to make cross-domain requests.</p>
+<p>Cross Origin Resource Sharing is a way to explicitly alter the same-origin 
policy for a given application or API. In order to allow for applications to 
make cross domain requests through Apache Knox, we need to configure the CORS 
filter of the WebAppSec provider.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -3995,7 +3990,7 @@ APACHE_HOME/bin/apachectl -k stop
   <tbody>
     <tr>
       <td>cors.enabled </td>
-      <td>This param enables the CORS capabilities</td>
+      <td>Setting this parameter to true allows cross origin requests. The 
default of false prevents cross origin requests.</td>
       <td>false</td>
     </tr>
     <tr>
@@ -4070,7 +4065,7 @@ APACHE_HOME/bin/apachectl -k stop
   </tbody>
 </table>
 <h5><a id="HTTP+Strict+Transport+Security">HTTP Strict Transport Security</a> 
<a href="#HTTP+Strict+Transport+Security"><img 
src="markbook-section-link.png"/></a></h5>
-<p>Web applications can be protected by protocol downgrade attacks and cookie 
hijacking by adding HTTP Strict Transport Security response header.</p>
+<p>HTTP Strict Transport Security (HSTS) is a web security policy mechanism 
which helps to protect websites against protocol downgrade attacks and cookie 
hijacking. It allows web servers to declare that web browsers (or other 
complying user agents) should only interact with it using secure HTTPS 
connections and never via the insecure HTTP protocol.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -4402,15 +4397,6 @@ APACHE_HOME/bin/apachectl -k stop
 <p>To enable SSO for REST API access through the Knox gateway, you need to 
protect your Hadoop services with the SSOCookieProvider configured to use the 
KnoxSSO service (sandbox.xml topology):</p>
 <pre><code>&lt;gateway&gt;
   &lt;provider&gt;
-    &lt;role&gt;webappsec&lt;/role&gt;
-    &lt;name&gt;WebAppSec&lt;/name&gt;
-    &lt;enabled&gt;true&lt;/enabled&gt;
-    &lt;param&gt;
-      &lt;name&gt;cors.enabled&lt;/name&gt;
-      &lt;value&gt;true&lt;/value&gt;
-    &lt;/param&gt;
-  &lt;/provider&gt;
-  &lt;provider&gt;
     &lt;role&gt;federation&lt;/role&gt;
     &lt;name&gt;SSOCookieProvider&lt;/name&gt;
     &lt;enabled&gt;true&lt;/enabled&gt;

Modified: knox/site/books/knox-1-0-0/user-guide.html
URL: 
http://svn.apache.org/viewvc/knox/site/books/knox-1-0-0/user-guide.html?rev=1875157&r1=1875156&r2=1875157&view=diff
==============================================================================
--- knox/site/books/knox-1-0-0/user-guide.html (original)
+++ knox/site/books/knox-1-0-0/user-guide.html Fri Mar 13 15:01:22 2020
@@ -3927,17 +3927,6 @@ APACHE_HOME/bin/apachectl -k stop
 <p>Use Knox samples.</p>
 <h3><a id="Web+App+Security+Provider">Web App Security Provider</a> <a 
href="#Web+App+Security+Provider"><img 
src="markbook-section-link.png"/></a></h3>
 <p>Knox is a Web API (REST) Gateway for Hadoop. The fact that REST 
interactions are HTTP based means that they are vulnerable to a number of web 
application security vulnerabilities. This project introduces a web application 
security provider for plugging in various protection filters.</p>
-<p>There are three aspects of web application security that are handled now: 
Cross Site Request Forgery (CSRF), Cross Origin Resource Sharing and HTTP 
Strict-Transport-Security. Others will be added in future releases.</p>
-<h4><a id="CSRF">CSRF</a> <a href="#CSRF"><img 
src="markbook-section-link.png"/></a></h4>
-<p>Cross site request forgery (CSRF) attacks attempt to force an authenticated 
user to execute functionality without their knowledge. By presenting them with 
a link or image that when clicked invokes a request to another site with which 
the user may have already established an active session.</p>
-<p>CSRF is entirely a browser based attack. Some background knowledge of how 
browsers work enables us to provide a filter that will prevent CSRF attacks. 
HTTP requests from a web browser performed via form, image, iframe, etc are 
unable to set custom HTTP headers. The only way to create a HTTP request from a 
browser with a custom HTTP header is to use a technology such as Javascript 
XMLHttpRequest or Flash. These technologies can set custom HTTP headers, but 
have security policies built in to prevent web sites from sending requests to 
each other unless specifically allowed by policy. </p>
-<p>This means that a website www.bad.com cannot send a request to <a 
href="http://bank.example.com";>http://bank.example.com</a> with the custom 
header X-XSRF-Header unless they use a technology such as a XMLHttpRequest. 
That technology would prevent such a request from being made unless the 
bank.example.com domain specifically allowed it. This then results in a REST 
endpoint that can only be called via XMLHttpRequest (or similar technology).</p>
-<p>NOTE: by enabling this protection within the topology, this custom header 
will be required for <em>all</em> clients that interact with it - not just 
browsers.</p>
-<h4><a id="CORS">CORS</a> <a href="#CORS"><img 
src="markbook-section-link.png"/></a></h4>
-<p>For security reasons, browsers restrict cross-origin HTTP requests 
initiated from within scripts. For example, XMLHttpRequest follows the 
same-origin policy. So, a web application using XMLHttpRequest could only make 
HTTP requests to its own domain. To improve web applications, developers asked 
browser vendors to allow XMLHttpRequest to make cross-domain requests.</p>
-<p>Cross Origin Resource Sharing is a way to explicitly alter the same-origin 
policy for a given application or API. In order to allow for applications to 
make cross domain requests through Apache Knox, we need to configure the CORS 
filter of the WebAppSec provider.</p>
-<h4><a id="HTTP+Strict-Tranport-Security+-+HSTS">HTTP Strict-Tranport-Security 
- HSTS</a> <a href="#HTTP+Strict-Tranport-Security+-+HSTS"><img 
src="markbook-section-link.png"/></a></h4>
-<p>HTTP Strict Transport Security (HSTS) is a web security policy mechanism 
which helps to protect websites against protocol downgrade attacks and cookie 
hijacking. It allows web servers to declare that web browsers (or other 
complying user agents) should only interact with it using secure HTTPS 
connections and never via the insecure HTTP protocol.</p>
 <h4><a id="Configuration">Configuration</a> <a href="#Configuration"><img 
src="markbook-section-link.png"/></a></h4>
 <h5><a id="Overview">Overview</a> <a href="#Overview"><img 
src="markbook-section-link.png"/></a></h5>
 <p>As with all providers in the Knox gateway, the web app security provider is 
configured through provider params. Unlike many other providers, the web app 
security provider may actually host multiple vulnerability/security filters. 
Currently, we only have implementations for CSRF, CORS and HTTP STS but others 
will follow and you may be interested in creating your own.</p>
@@ -3949,7 +3938,7 @@ APACHE_HOME/bin/apachectl -k stop
     
&lt;param&gt;&lt;name&gt;csrf.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;csrf.customHeader&lt;/name&gt;&lt;value&gt;X-XSRF-Header&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;csrf.methodsToIgnore&lt;/name&gt;&lt;value&gt;GET,OPTIONS,HEAD&lt;/value&gt;&lt;/param&gt;
-    
&lt;param&gt;&lt;name&gt;cors.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
+    
&lt;param&gt;&lt;name&gt;cors.enabled&lt;/name&gt;&lt;value&gt;false&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;xframe-options.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;strict.transport.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
 &lt;/provider&gt;
@@ -3957,6 +3946,10 @@ APACHE_HOME/bin/apachectl -k stop
 <h4><a id="Descriptions">Descriptions</a> <a href="#Descriptions"><img 
src="markbook-section-link.png"/></a></h4>
 <p>The following tables describes the configuration options for the web app 
security provider:</p>
 <h5><a id="CSRF">CSRF</a> <a href="#CSRF"><img 
src="markbook-section-link.png"/></a></h5>
+<p>Cross site request forgery (CSRF) attacks attempt to force an authenticated 
user to execute functionality without their knowledge. By presenting them with 
a link or image that when clicked invokes a request to another site with which 
the user may have already established an active session.</p>
+<p>CSRF is entirely a browser based attack. Some background knowledge of how 
browsers work enables us to provide a filter that will prevent CSRF attacks. 
HTTP requests from a web browser performed via form, image, iframe, etc are 
unable to set custom HTTP headers. The only way to create a HTTP request from a 
browser with a custom HTTP header is to use a technology such as Javascript 
XMLHttpRequest or Flash. These technologies can set custom HTTP headers, but 
have security policies built in to prevent web sites from sending requests to 
each other unless specifically allowed by policy. </p>
+<p>This means that a website www.bad.com cannot send a request to <a 
href="http://bank.example.com";>http://bank.example.com</a> with the custom 
header X-XSRF-Header unless they use a technology such as a XMLHttpRequest. 
That technology would prevent such a request from being made unless the 
bank.example.com domain specifically allowed it. This then results in a REST 
endpoint that can only be called via XMLHttpRequest (or similar technology).</p>
+<p>NOTE: by enabling this protection within the topology, this custom header 
will be required for <em>all</em> clients that interact with it - not just 
browsers.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -3991,6 +3984,8 @@ APACHE_HOME/bin/apachectl -k stop
 <p>Omitting the &ndash;header &ldquo;X-XSRF-Header: valid&rdquo; above should 
result in an HTTP 400 bad_request.</p>
 <p>Disabling the provider will then allow a request that is missing the header 
through. </p>
 <h5><a id="CORS">CORS</a> <a href="#CORS"><img 
src="markbook-section-link.png"/></a></h5>
+<p>For security reasons, browsers restrict cross-origin HTTP requests 
initiated from within scripts. For example, XMLHttpRequest follows the 
same-origin policy. So, a web application using XMLHttpRequest could only make 
HTTP requests to its own domain. To improve web applications, developers asked 
browser vendors to allow XMLHttpRequest to make cross-domain requests.</p>
+<p>Cross Origin Resource Sharing is a way to explicitly alter the same-origin 
policy for a given application or API. In order to allow for applications to 
make cross domain requests through Apache Knox, we need to configure the CORS 
filter of the WebAppSec provider.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -4003,7 +3998,7 @@ APACHE_HOME/bin/apachectl -k stop
   <tbody>
     <tr>
       <td>cors.enabled </td>
-      <td>This param enables the CORS capabilities</td>
+      <td>Setting this parameter to true allows cross origin requests. The 
default of false prevents cross origin requests.</td>
       <td>false</td>
     </tr>
     <tr>
@@ -4078,7 +4073,7 @@ APACHE_HOME/bin/apachectl -k stop
   </tbody>
 </table>
 <h5><a id="HTTP+Strict+Transport+Security">HTTP Strict Transport Security</a> 
<a href="#HTTP+Strict+Transport+Security"><img 
src="markbook-section-link.png"/></a></h5>
-<p>Web applications can be protected by protocol downgrade attacks and cookie 
hijacking by adding HTTP Strict Transport Security response header.</p>
+<p>HTTP Strict Transport Security (HSTS) is a web security policy mechanism 
which helps to protect websites against protocol downgrade attacks and cookie 
hijacking. It allows web servers to declare that web browsers (or other 
complying user agents) should only interact with it using secure HTTPS 
connections and never via the insecure HTTP protocol.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -4410,15 +4405,6 @@ APACHE_HOME/bin/apachectl -k stop
 <p>To enable SSO for REST API access through the Knox gateway, you need to 
protect your Hadoop services with the SSOCookieProvider configured to use the 
KnoxSSO service (sandbox.xml topology):</p>
 <pre><code>&lt;gateway&gt;
   &lt;provider&gt;
-    &lt;role&gt;webappsec&lt;/role&gt;
-    &lt;name&gt;WebAppSec&lt;/name&gt;
-    &lt;enabled&gt;true&lt;/enabled&gt;
-    &lt;param&gt;
-      &lt;name&gt;cors.enabled&lt;/name&gt;
-      &lt;value&gt;true&lt;/value&gt;
-    &lt;/param&gt;
-  &lt;/provider&gt;
-  &lt;provider&gt;
     &lt;role&gt;federation&lt;/role&gt;
     &lt;name&gt;SSOCookieProvider&lt;/name&gt;
     &lt;enabled&gt;true&lt;/enabled&gt;

Modified: knox/site/books/knox-1-1-0/user-guide.html
URL: 
http://svn.apache.org/viewvc/knox/site/books/knox-1-1-0/user-guide.html?rev=1875157&r1=1875156&r2=1875157&view=diff
==============================================================================
--- knox/site/books/knox-1-1-0/user-guide.html (original)
+++ knox/site/books/knox-1-1-0/user-guide.html Fri Mar 13 15:01:22 2020
@@ -4046,17 +4046,6 @@ APACHE_HOME/bin/apachectl -k stop
 <p>Use Knox samples.</p>
 <h3><a id="Web+App+Security+Provider">Web App Security Provider</a> <a 
href="#Web+App+Security+Provider"><img 
src="markbook-section-link.png"/></a></h3>
 <p>Knox is a Web API (REST) Gateway for Hadoop. The fact that REST 
interactions are HTTP based means that they are vulnerable to a number of web 
application security vulnerabilities. This project introduces a web application 
security provider for plugging in various protection filters.</p>
-<p>There are three aspects of web application security that are handled now: 
Cross Site Request Forgery (CSRF), Cross Origin Resource Sharing and HTTP 
Strict-Transport-Security. Others will be added in future releases.</p>
-<h4><a id="CSRF">CSRF</a> <a href="#CSRF"><img 
src="markbook-section-link.png"/></a></h4>
-<p>Cross site request forgery (CSRF) attacks attempt to force an authenticated 
user to execute functionality without their knowledge. By presenting them with 
a link or image that when clicked invokes a request to another site with which 
the user may have already established an active session.</p>
-<p>CSRF is entirely a browser-based attack. Some background knowledge of how 
browsers work enables us to provide a filter that will prevent CSRF attacks. 
HTTP requests from a web browser performed via form, image, iframe, etc. are 
unable to set custom HTTP headers. The only way to create a HTTP request from a 
browser with a custom HTTP header is to use a technology such as JavaScript 
XMLHttpRequest or Flash. These technologies can set custom HTTP headers but 
have security policies built in to prevent web sites from sending requests to 
each other unless specifically allowed by policy. </p>
-<p>This means that a website www.bad.com cannot send a request to <a 
href="http://bank.example.com";>http://bank.example.com</a> with the custom 
header X-XSRF-Header unless they use a technology such as a XMLHttpRequest. 
That technology would prevent such a request from being made unless the 
bank.example.com domain specifically allowed it. This then results in a REST 
endpoint that can only be called via XMLHttpRequest (or similar technology).</p>
-<p>NOTE: by enabling this protection within the topology, this custom header 
will be required for <em>all</em> clients that interact with it - not just 
browsers.</p>
-<h4><a id="CORS">CORS</a> <a href="#CORS"><img 
src="markbook-section-link.png"/></a></h4>
-<p>For security reasons, browsers restrict cross-origin HTTP requests 
initiated from within scripts. For example, XMLHttpRequest follows the 
same-origin policy. So, a web application using XMLHttpRequest could only make 
HTTP requests to its own domain. To improve web applications, developers asked 
browser vendors to allow XMLHttpRequest to make cross-domain requests.</p>
-<p>Cross Origin Resource Sharing is a way to explicitly alter the same-origin 
policy for a given application or API. In order to allow for applications to 
make cross domain requests through Apache Knox, we need to configure the CORS 
filter of the WebAppSec provider.</p>
-<h4><a id="HTTP+Strict-Transport-Security+-+HSTS">HTTP 
Strict-Transport-Security - HSTS</a> <a 
href="#HTTP+Strict-Transport-Security+-+HSTS"><img 
src="markbook-section-link.png"/></a></h4>
-<p>HTTP Strict Transport Security (HSTS) is a web security policy mechanism 
which helps to protect websites against protocol downgrade attacks and cookie 
hijacking. It allows web servers to declare that web browsers (or other 
complying user agents) should only interact with it using secure HTTPS 
connections and never via the insecure HTTP protocol.</p>
 <h4><a id="Configuration">Configuration</a> <a href="#Configuration"><img 
src="markbook-section-link.png"/></a></h4>
 <h5><a id="Overview">Overview</a> <a href="#Overview"><img 
src="markbook-section-link.png"/></a></h5>
 <p>As with all providers in the Knox gateway, the web app security provider is 
configured through provider parameters. Unlike many other providers, the web 
app security provider may actually host multiple vulnerability/security 
filters. Currently, we only have implementations for CSRF, CORS and HTTP STS 
but others might follow, and you may be interested in creating your own.</p>
@@ -4068,7 +4057,7 @@ APACHE_HOME/bin/apachectl -k stop
     
&lt;param&gt;&lt;name&gt;csrf.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;csrf.customHeader&lt;/name&gt;&lt;value&gt;X-XSRF-Header&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;csrf.methodsToIgnore&lt;/name&gt;&lt;value&gt;GET,OPTIONS,HEAD&lt;/value&gt;&lt;/param&gt;
-    
&lt;param&gt;&lt;name&gt;cors.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
+    
&lt;param&gt;&lt;name&gt;cors.enabled&lt;/name&gt;&lt;value&gt;false&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;xframe.options.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;xss.protection.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;strict.transport.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
@@ -4077,6 +4066,10 @@ APACHE_HOME/bin/apachectl -k stop
 <h4><a id="Descriptions">Descriptions</a> <a href="#Descriptions"><img 
src="markbook-section-link.png"/></a></h4>
 <p>The following tables describes the configuration options for the web app 
security provider:</p>
 <h5><a id="CSRF">CSRF</a> <a href="#CSRF"><img 
src="markbook-section-link.png"/></a></h5>
+<p>Cross site request forgery (CSRF) attacks attempt to force an authenticated 
user to execute functionality without their knowledge. By presenting them with 
a link or image that when clicked invokes a request to another site with which 
the user may have already established an active session.</p>
+<p>CSRF is entirely a browser-based attack. Some background knowledge of how 
browsers work enables us to provide a filter that will prevent CSRF attacks. 
HTTP requests from a web browser performed via form, image, iframe, etc. are 
unable to set custom HTTP headers. The only way to create a HTTP request from a 
browser with a custom HTTP header is to use a technology such as JavaScript 
XMLHttpRequest or Flash. These technologies can set custom HTTP headers but 
have security policies built in to prevent web sites from sending requests to 
each other unless specifically allowed by policy. </p>
+<p>This means that a website www.bad.com cannot send a request to <a 
href="http://bank.example.com";>http://bank.example.com</a> with the custom 
header X-XSRF-Header unless they use a technology such as a XMLHttpRequest. 
That technology would prevent such a request from being made unless the 
bank.example.com domain specifically allowed it. This then results in a REST 
endpoint that can only be called via XMLHttpRequest (or similar technology).</p>
+<p>NOTE: by enabling this protection within the topology, this custom header 
will be required for <em>all</em> clients that interact with it - not just 
browsers.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -4111,6 +4104,8 @@ APACHE_HOME/bin/apachectl -k stop
 <p>Omitting the <code>--header &quot;X-XSRF-Header: valid&quot;</code> above 
should result in an HTTP 400 bad_request.</p>
 <p>Disabling the provider will then allow a request that is missing the header 
through. </p>
 <h5><a id="CORS">CORS</a> <a href="#CORS"><img 
src="markbook-section-link.png"/></a></h5>
+<p>For security reasons, browsers restrict cross-origin HTTP requests 
initiated from within scripts. For example, XMLHttpRequest follows the 
same-origin policy. So, a web application using XMLHttpRequest could only make 
HTTP requests to its own domain. To improve web applications, developers asked 
browser vendors to allow XMLHttpRequest to make cross-domain requests.</p>
+<p>Cross Origin Resource Sharing is a way to explicitly alter the same-origin 
policy for a given application or API. In order to allow for applications to 
make cross domain requests through Apache Knox, we need to configure the CORS 
filter of the WebAppSec provider.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -4123,7 +4118,7 @@ APACHE_HOME/bin/apachectl -k stop
   <tbody>
     <tr>
       <td>cors.enabled </td>
-      <td>This parameter enables the CORS capabilities</td>
+      <td>Setting this parameter to true allows cross origin requests. The 
default of false prevents cross origin requests.</td>
       <td>false</td>
     </tr>
     <tr>
@@ -4241,7 +4236,7 @@ APACHE_HOME/bin/apachectl -k stop
   </tbody>
 </table>
 <h5><a id="HTTP+Strict+Transport+Security">HTTP Strict Transport Security</a> 
<a href="#HTTP+Strict+Transport+Security"><img 
src="markbook-section-link.png"/></a></h5>
-<p>Web applications can be protected by protocol downgrade attacks and cookie 
hijacking by adding HTTP Strict Transport Security response header.</p>
+<p>HTTP Strict Transport Security (HSTS) is a web security policy mechanism 
which helps to protect websites against protocol downgrade attacks and cookie 
hijacking. It allows web servers to declare that web browsers (or other 
complying user agents) should only interact with it using secure HTTPS 
connections and never via the insecure HTTP protocol.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -4573,15 +4568,6 @@ APACHE_HOME/bin/apachectl -k stop
 <p>To enable SSO for REST API access through the Knox gateway, you need to 
protect your Hadoop services with the SSOCookieProvider configured to use the 
KnoxSSO service (sandbox.xml topology):</p>
 <pre><code>&lt;gateway&gt;
   &lt;provider&gt;
-    &lt;role&gt;webappsec&lt;/role&gt;
-    &lt;name&gt;WebAppSec&lt;/name&gt;
-    &lt;enabled&gt;true&lt;/enabled&gt;
-    &lt;param&gt;
-      &lt;name&gt;cors.enabled&lt;/name&gt;
-      &lt;value&gt;true&lt;/value&gt;
-    &lt;/param&gt;
-  &lt;/provider&gt;
-  &lt;provider&gt;
     &lt;role&gt;federation&lt;/role&gt;
     &lt;name&gt;SSOCookieProvider&lt;/name&gt;
     &lt;enabled&gt;true&lt;/enabled&gt;

Modified: knox/site/books/knox-1-2-0/user-guide.html
URL: 
http://svn.apache.org/viewvc/knox/site/books/knox-1-2-0/user-guide.html?rev=1875157&r1=1875156&r2=1875157&view=diff
==============================================================================
--- knox/site/books/knox-1-2-0/user-guide.html (original)
+++ knox/site/books/knox-1-2-0/user-guide.html Fri Mar 13 15:01:22 2020
@@ -4046,17 +4046,6 @@ APACHE_HOME/bin/apachectl -k stop
 <p>Use Knox samples.</p>
 <h3><a id="Web+App+Security+Provider">Web App Security Provider</a> <a 
href="#Web+App+Security+Provider"><img 
src="markbook-section-link.png"/></a></h3>
 <p>Knox is a Web API (REST) Gateway for Hadoop. The fact that REST 
interactions are HTTP based means that they are vulnerable to a number of web 
application security vulnerabilities. This project introduces a web application 
security provider for plugging in various protection filters.</p>
-<p>There are three aspects of web application security that are handled now: 
Cross Site Request Forgery (CSRF), Cross Origin Resource Sharing and HTTP 
Strict-Transport-Security. Others will be added in future releases.</p>
-<h4><a id="CSRF">CSRF</a> <a href="#CSRF"><img 
src="markbook-section-link.png"/></a></h4>
-<p>Cross site request forgery (CSRF) attacks attempt to force an authenticated 
user to execute functionality without their knowledge. By presenting them with 
a link or image that when clicked invokes a request to another site with which 
the user may have already established an active session.</p>
-<p>CSRF is entirely a browser-based attack. Some background knowledge of how 
browsers work enables us to provide a filter that will prevent CSRF attacks. 
HTTP requests from a web browser performed via form, image, iframe, etc. are 
unable to set custom HTTP headers. The only way to create a HTTP request from a 
browser with a custom HTTP header is to use a technology such as JavaScript 
XMLHttpRequest or Flash. These technologies can set custom HTTP headers but 
have security policies built in to prevent web sites from sending requests to 
each other unless specifically allowed by policy. </p>
-<p>This means that a website www.bad.com cannot send a request to <a 
href="http://bank.example.com";>http://bank.example.com</a> with the custom 
header X-XSRF-Header unless they use a technology such as a XMLHttpRequest. 
That technology would prevent such a request from being made unless the 
bank.example.com domain specifically allowed it. This then results in a REST 
endpoint that can only be called via XMLHttpRequest (or similar technology).</p>
-<p>NOTE: by enabling this protection within the topology, this custom header 
will be required for <em>all</em> clients that interact with it - not just 
browsers.</p>
-<h4><a id="CORS">CORS</a> <a href="#CORS"><img 
src="markbook-section-link.png"/></a></h4>
-<p>For security reasons, browsers restrict cross-origin HTTP requests 
initiated from within scripts. For example, XMLHttpRequest follows the 
same-origin policy. So, a web application using XMLHttpRequest could only make 
HTTP requests to its own domain. To improve web applications, developers asked 
browser vendors to allow XMLHttpRequest to make cross-domain requests.</p>
-<p>Cross Origin Resource Sharing is a way to explicitly alter the same-origin 
policy for a given application or API. In order to allow for applications to 
make cross domain requests through Apache Knox, we need to configure the CORS 
filter of the WebAppSec provider.</p>
-<h4><a id="HTTP+Strict-Transport-Security+-+HSTS">HTTP 
Strict-Transport-Security - HSTS</a> <a 
href="#HTTP+Strict-Transport-Security+-+HSTS"><img 
src="markbook-section-link.png"/></a></h4>
-<p>HTTP Strict Transport Security (HSTS) is a web security policy mechanism 
which helps to protect websites against protocol downgrade attacks and cookie 
hijacking. It allows web servers to declare that web browsers (or other 
complying user agents) should only interact with it using secure HTTPS 
connections and never via the insecure HTTP protocol.</p>
 <h4><a id="Configuration">Configuration</a> <a href="#Configuration"><img 
src="markbook-section-link.png"/></a></h4>
 <h5><a id="Overview">Overview</a> <a href="#Overview"><img 
src="markbook-section-link.png"/></a></h5>
 <p>As with all providers in the Knox gateway, the web app security provider is 
configured through provider parameters. Unlike many other providers, the web 
app security provider may actually host multiple vulnerability/security 
filters. Currently, we only have implementations for CSRF, CORS and HTTP STS 
but others might follow, and you may be interested in creating your own.</p>
@@ -4068,7 +4057,7 @@ APACHE_HOME/bin/apachectl -k stop
     
&lt;param&gt;&lt;name&gt;csrf.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;csrf.customHeader&lt;/name&gt;&lt;value&gt;X-XSRF-Header&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;csrf.methodsToIgnore&lt;/name&gt;&lt;value&gt;GET,OPTIONS,HEAD&lt;/value&gt;&lt;/param&gt;
-    
&lt;param&gt;&lt;name&gt;cors.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
+    
&lt;param&gt;&lt;name&gt;cors.enabled&lt;/name&gt;&lt;value&gt;false&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;xframe.options.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;xss.protection.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;strict.transport.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
@@ -4077,6 +4066,10 @@ APACHE_HOME/bin/apachectl -k stop
 <h4><a id="Descriptions">Descriptions</a> <a href="#Descriptions"><img 
src="markbook-section-link.png"/></a></h4>
 <p>The following tables describes the configuration options for the web app 
security provider:</p>
 <h5><a id="CSRF">CSRF</a> <a href="#CSRF"><img 
src="markbook-section-link.png"/></a></h5>
+<p>Cross site request forgery (CSRF) attacks attempt to force an authenticated 
user to execute functionality without their knowledge. By presenting them with 
a link or image that when clicked invokes a request to another site with which 
the user may have already established an active session.</p>
+<p>CSRF is entirely a browser-based attack. Some background knowledge of how 
browsers work enables us to provide a filter that will prevent CSRF attacks. 
HTTP requests from a web browser performed via form, image, iframe, etc. are 
unable to set custom HTTP headers. The only way to create a HTTP request from a 
browser with a custom HTTP header is to use a technology such as JavaScript 
XMLHttpRequest or Flash. These technologies can set custom HTTP headers but 
have security policies built in to prevent web sites from sending requests to 
each other unless specifically allowed by policy. </p>
+<p>This means that a website www.bad.com cannot send a request to <a 
href="http://bank.example.com";>http://bank.example.com</a> with the custom 
header X-XSRF-Header unless they use a technology such as a XMLHttpRequest. 
That technology would prevent such a request from being made unless the 
bank.example.com domain specifically allowed it. This then results in a REST 
endpoint that can only be called via XMLHttpRequest (or similar technology).</p>
+<p>NOTE: by enabling this protection within the topology, this custom header 
will be required for <em>all</em> clients that interact with it - not just 
browsers.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -4111,6 +4104,8 @@ APACHE_HOME/bin/apachectl -k stop
 <p>Omitting the <code>--header &quot;X-XSRF-Header: valid&quot;</code> above 
should result in an HTTP 400 bad_request.</p>
 <p>Disabling the provider will then allow a request that is missing the header 
through. </p>
 <h5><a id="CORS">CORS</a> <a href="#CORS"><img 
src="markbook-section-link.png"/></a></h5>
+<p>For security reasons, browsers restrict cross-origin HTTP requests 
initiated from within scripts. For example, XMLHttpRequest follows the 
same-origin policy. So, a web application using XMLHttpRequest could only make 
HTTP requests to its own domain. To improve web applications, developers asked 
browser vendors to allow XMLHttpRequest to make cross-domain requests.</p>
+<p>Cross Origin Resource Sharing is a way to explicitly alter the same-origin 
policy for a given application or API. In order to allow for applications to 
make cross domain requests through Apache Knox, we need to configure the CORS 
filter of the WebAppSec provider.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -4123,7 +4118,7 @@ APACHE_HOME/bin/apachectl -k stop
   <tbody>
     <tr>
       <td>cors.enabled </td>
-      <td>This parameter enables the CORS capabilities</td>
+      <td>Setting this parameter to true allows cross origin requests. The 
default of false prevents cross origin requests.</td>
       <td>false</td>
     </tr>
     <tr>
@@ -4241,7 +4236,7 @@ APACHE_HOME/bin/apachectl -k stop
   </tbody>
 </table>
 <h5><a id="HTTP+Strict+Transport+Security">HTTP Strict Transport Security</a> 
<a href="#HTTP+Strict+Transport+Security"><img 
src="markbook-section-link.png"/></a></h5>
-<p>Web applications can be protected by protocol downgrade attacks and cookie 
hijacking by adding HTTP Strict Transport Security response header.</p>
+<p>HTTP Strict Transport Security (HSTS) is a web security policy mechanism 
which helps to protect websites against protocol downgrade attacks and cookie 
hijacking. It allows web servers to declare that web browsers (or other 
complying user agents) should only interact with it using secure HTTPS 
connections and never via the insecure HTTP protocol.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -4573,15 +4568,6 @@ APACHE_HOME/bin/apachectl -k stop
 <p>To enable SSO for REST API access through the Knox gateway, you need to 
protect your Hadoop services with the SSOCookieProvider configured to use the 
KnoxSSO service (sandbox.xml topology):</p>
 <pre><code>&lt;gateway&gt;
   &lt;provider&gt;
-    &lt;role&gt;webappsec&lt;/role&gt;
-    &lt;name&gt;WebAppSec&lt;/name&gt;
-    &lt;enabled&gt;true&lt;/enabled&gt;
-    &lt;param&gt;
-      &lt;name&gt;cors.enabled&lt;/name&gt;
-      &lt;value&gt;true&lt;/value&gt;
-    &lt;/param&gt;
-  &lt;/provider&gt;
-  &lt;provider&gt;
     &lt;role&gt;federation&lt;/role&gt;
     &lt;name&gt;SSOCookieProvider&lt;/name&gt;
     &lt;enabled&gt;true&lt;/enabled&gt;

Modified: knox/site/books/knox-1-3-0/user-guide.html
URL: 
http://svn.apache.org/viewvc/knox/site/books/knox-1-3-0/user-guide.html?rev=1875157&r1=1875156&r2=1875157&view=diff
==============================================================================
--- knox/site/books/knox-1-3-0/user-guide.html (original)
+++ knox/site/books/knox-1-3-0/user-guide.html Fri Mar 13 15:01:22 2020
@@ -4300,17 +4300,6 @@ APACHE_HOME/bin/apachectl -k stop
 <p>Use Knox samples.</p>
 <h3><a id="Web+App+Security+Provider">Web App Security Provider</a> <a 
href="#Web+App+Security+Provider"><img 
src="markbook-section-link.png"/></a></h3>
 <p>Knox is a Web API (REST) Gateway for Hadoop. The fact that REST 
interactions are HTTP based means that they are vulnerable to a number of web 
application security vulnerabilities. This project introduces a web application 
security provider for plugging in various protection filters.</p>
-<p>There are three aspects of web application security that are handled now: 
Cross Site Request Forgery (CSRF), Cross Origin Resource Sharing and HTTP 
Strict-Transport-Security. Others will be added in future releases.</p>
-<h4><a id="CSRF">CSRF</a> <a href="#CSRF"><img 
src="markbook-section-link.png"/></a></h4>
-<p>Cross site request forgery (CSRF) attacks attempt to force an authenticated 
user to execute functionality without their knowledge. By presenting them with 
a link or image that when clicked invokes a request to another site with which 
the user may have already established an active session.</p>
-<p>CSRF is entirely a browser-based attack. Some background knowledge of how 
browsers work enables us to provide a filter that will prevent CSRF attacks. 
HTTP requests from a web browser performed via form, image, iframe, etc. are 
unable to set custom HTTP headers. The only way to create a HTTP request from a 
browser with a custom HTTP header is to use a technology such as JavaScript 
XMLHttpRequest or Flash. These technologies can set custom HTTP headers but 
have security policies built in to prevent web sites from sending requests to 
each other unless specifically allowed by policy. </p>
-<p>This means that a website www.bad.com cannot send a request to <a 
href="http://bank.example.com";>http://bank.example.com</a> with the custom 
header X-XSRF-Header unless they use a technology such as a XMLHttpRequest. 
That technology would prevent such a request from being made unless the 
bank.example.com domain specifically allowed it. This then results in a REST 
endpoint that can only be called via XMLHttpRequest (or similar technology).</p>
-<p>NOTE: by enabling this protection within the topology, this custom header 
will be required for <em>all</em> clients that interact with it - not just 
browsers.</p>
-<h4><a id="CORS">CORS</a> <a href="#CORS"><img 
src="markbook-section-link.png"/></a></h4>
-<p>For security reasons, browsers restrict cross-origin HTTP requests 
initiated from within scripts. For example, XMLHttpRequest follows the 
same-origin policy. So, a web application using XMLHttpRequest could only make 
HTTP requests to its own domain. To improve web applications, developers asked 
browser vendors to allow XMLHttpRequest to make cross-domain requests.</p>
-<p>Cross Origin Resource Sharing is a way to explicitly alter the same-origin 
policy for a given application or API. In order to allow for applications to 
make cross domain requests through Apache Knox, we need to configure the CORS 
filter of the WebAppSec provider.</p>
-<h4><a id="HTTP+Strict-Transport-Security+-+HSTS">HTTP 
Strict-Transport-Security - HSTS</a> <a 
href="#HTTP+Strict-Transport-Security+-+HSTS"><img 
src="markbook-section-link.png"/></a></h4>
-<p>HTTP Strict Transport Security (HSTS) is a web security policy mechanism 
which helps to protect websites against protocol downgrade attacks and cookie 
hijacking. It allows web servers to declare that web browsers (or other 
complying user agents) should only interact with it using secure HTTPS 
connections and never via the insecure HTTP protocol.</p>
 <h4><a id="Configuration">Configuration</a> <a href="#Configuration"><img 
src="markbook-section-link.png"/></a></h4>
 <h5><a id="Overview">Overview</a> <a href="#Overview"><img 
src="markbook-section-link.png"/></a></h5>
 <p>As with all providers in the Knox gateway, the web app security provider is 
configured through provider parameters. Unlike many other providers, the web 
app security provider may actually host multiple vulnerability/security 
filters. Currently, we only have implementations for CSRF, CORS and HTTP STS 
but others might follow, and you may be interested in creating your own.</p>
@@ -4322,7 +4311,7 @@ APACHE_HOME/bin/apachectl -k stop
     
&lt;param&gt;&lt;name&gt;csrf.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;csrf.customHeader&lt;/name&gt;&lt;value&gt;X-XSRF-Header&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;csrf.methodsToIgnore&lt;/name&gt;&lt;value&gt;GET,OPTIONS,HEAD&lt;/value&gt;&lt;/param&gt;
-    
&lt;param&gt;&lt;name&gt;cors.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
+    
&lt;param&gt;&lt;name&gt;cors.enabled&lt;/name&gt;&lt;value&gt;false&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;xframe.options.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;xss.protection.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;strict.transport.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
@@ -4331,6 +4320,10 @@ APACHE_HOME/bin/apachectl -k stop
 <h4><a id="Descriptions">Descriptions</a> <a href="#Descriptions"><img 
src="markbook-section-link.png"/></a></h4>
 <p>The following tables describes the configuration options for the web app 
security provider:</p>
 <h5><a id="CSRF">CSRF</a> <a href="#CSRF"><img 
src="markbook-section-link.png"/></a></h5>
+<p>Cross site request forgery (CSRF) attacks attempt to force an authenticated 
user to execute functionality without their knowledge. By presenting them with 
a link or image that when clicked invokes a request to another site with which 
the user may have already established an active session.</p>
+<p>CSRF is entirely a browser-based attack. Some background knowledge of how 
browsers work enables us to provide a filter that will prevent CSRF attacks. 
HTTP requests from a web browser performed via form, image, iframe, etc. are 
unable to set custom HTTP headers. The only way to create a HTTP request from a 
browser with a custom HTTP header is to use a technology such as JavaScript 
XMLHttpRequest or Flash. These technologies can set custom HTTP headers but 
have security policies built in to prevent web sites from sending requests to 
each other unless specifically allowed by policy. </p>
+<p>This means that a website www.bad.com cannot send a request to <a 
href="http://bank.example.com";>http://bank.example.com</a> with the custom 
header X-XSRF-Header unless they use a technology such as a XMLHttpRequest. 
That technology would prevent such a request from being made unless the 
bank.example.com domain specifically allowed it. This then results in a REST 
endpoint that can only be called via XMLHttpRequest (or similar technology).</p>
+<p>NOTE: by enabling this protection within the topology, this custom header 
will be required for <em>all</em> clients that interact with it - not just 
browsers.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -4365,6 +4358,8 @@ APACHE_HOME/bin/apachectl -k stop
 <p>Omitting the <code>--header &quot;X-XSRF-Header: valid&quot;</code> above 
should result in an HTTP 400 bad_request.</p>
 <p>Disabling the provider will then allow a request that is missing the header 
through. </p>
 <h5><a id="CORS">CORS</a> <a href="#CORS"><img 
src="markbook-section-link.png"/></a></h5>
+<p>For security reasons, browsers restrict cross-origin HTTP requests 
initiated from within scripts. For example, XMLHttpRequest follows the 
same-origin policy. So, a web application using XMLHttpRequest could only make 
HTTP requests to its own domain. To improve web applications, developers asked 
browser vendors to allow XMLHttpRequest to make cross-domain requests.</p>
+<p>Cross Origin Resource Sharing is a way to explicitly alter the same-origin 
policy for a given application or API. In order to allow for applications to 
make cross domain requests through Apache Knox, we need to configure the CORS 
filter of the WebAppSec provider.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -4377,7 +4372,7 @@ APACHE_HOME/bin/apachectl -k stop
   <tbody>
     <tr>
       <td>cors.enabled </td>
-      <td>This parameter enables the CORS capabilities</td>
+      <td>Setting this parameter to true allows cross origin requests. The 
default of false prevents cross origin requests.</td>
       <td>false</td>
     </tr>
     <tr>
@@ -4495,7 +4490,7 @@ APACHE_HOME/bin/apachectl -k stop
   </tbody>
 </table>
 <h5><a id="HTTP+Strict+Transport+Security">HTTP Strict Transport Security</a> 
<a href="#HTTP+Strict+Transport+Security"><img 
src="markbook-section-link.png"/></a></h5>
-<p>Web applications can be protected by protocol downgrade attacks and cookie 
hijacking by adding HTTP Strict Transport Security response header.</p>
+<p>HTTP Strict Transport Security (HSTS) is a web security policy mechanism 
which helps to protect websites against protocol downgrade attacks and cookie 
hijacking. It allows web servers to declare that web browsers (or other 
complying user agents) should only interact with it using secure HTTPS 
connections and never via the insecure HTTP protocol.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -4826,16 +4821,6 @@ APACHE_HOME/bin/apachectl -k stop
 <h5><a id="SSO+topology">SSO topology</a> <a href="#SSO+topology"><img 
src="markbook-section-link.png"/></a></h5>
 <p>To enable SSO for REST API access through the Knox gateway, you need to 
protect your Hadoop services with the SSOCookieProvider configured to use the 
KnoxSSO service (sandbox.xml topology):</p>
 <pre><code>&lt;gateway&gt;
-  &lt;provider&gt;
-    &lt;role&gt;webappsec&lt;/role&gt;
-    &lt;name&gt;WebAppSec&lt;/name&gt;
-    &lt;enabled&gt;true&lt;/enabled&gt;
-    &lt;param&gt;
-      &lt;name&gt;cors.enabled&lt;/name&gt;
-      &lt;value&gt;true&lt;/value&gt;
-    &lt;/param&gt;
-  &lt;/provider&gt;
-  &lt;provider&gt;
     &lt;role&gt;federation&lt;/role&gt;
     &lt;name&gt;SSOCookieProvider&lt;/name&gt;
     &lt;enabled&gt;true&lt;/enabled&gt;

Modified: knox/site/books/knox-1-4-0/user-guide.html
URL: 
http://svn.apache.org/viewvc/knox/site/books/knox-1-4-0/user-guide.html?rev=1875157&r1=1875156&r2=1875157&view=diff
==============================================================================
--- knox/site/books/knox-1-4-0/user-guide.html (original)
+++ knox/site/books/knox-1-4-0/user-guide.html Fri Mar 13 15:01:22 2020
@@ -4325,17 +4325,6 @@ APACHE_HOME/bin/apachectl -k stop
 <p>Use Knox samples.</p>
 <h3><a id="Web+App+Security+Provider">Web App Security Provider</a> <a 
href="#Web+App+Security+Provider"><img 
src="markbook-section-link.png"/></a></h3>
 <p>Knox is a Web API (REST) Gateway for Hadoop. The fact that REST 
interactions are HTTP based means that they are vulnerable to a number of web 
application security vulnerabilities. This project introduces a web application 
security provider for plugging in various protection filters.</p>
-<p>There are three aspects of web application security that are handled now: 
Cross Site Request Forgery (CSRF), Cross Origin Resource Sharing and HTTP 
Strict-Transport-Security. Others will be added in future releases.</p>
-<h4><a id="CSRF">CSRF</a> <a href="#CSRF"><img 
src="markbook-section-link.png"/></a></h4>
-<p>Cross site request forgery (CSRF) attacks attempt to force an authenticated 
user to execute functionality without their knowledge. By presenting them with 
a link or image that when clicked invokes a request to another site with which 
the user may have already established an active session.</p>
-<p>CSRF is entirely a browser-based attack. Some background knowledge of how 
browsers work enables us to provide a filter that will prevent CSRF attacks. 
HTTP requests from a web browser performed via form, image, iframe, etc. are 
unable to set custom HTTP headers. The only way to create a HTTP request from a 
browser with a custom HTTP header is to use a technology such as JavaScript 
XMLHttpRequest or Flash. These technologies can set custom HTTP headers but 
have security policies built in to prevent web sites from sending requests to 
each other unless specifically allowed by policy. </p>
-<p>This means that a website www.bad.com cannot send a request to <a 
href="http://bank.example.com";>http://bank.example.com</a> with the custom 
header X-XSRF-Header unless they use a technology such as a XMLHttpRequest. 
That technology would prevent such a request from being made unless the 
bank.example.com domain specifically allowed it. This then results in a REST 
endpoint that can only be called via XMLHttpRequest (or similar technology).</p>
-<p>NOTE: by enabling this protection within the topology, this custom header 
will be required for <em>all</em> clients that interact with it - not just 
browsers.</p>
-<h4><a id="CORS">CORS</a> <a href="#CORS"><img 
src="markbook-section-link.png"/></a></h4>
-<p>For security reasons, browsers restrict cross-origin HTTP requests 
initiated from within scripts. For example, XMLHttpRequest follows the 
same-origin policy. So, a web application using XMLHttpRequest could only make 
HTTP requests to its own domain. To improve web applications, developers asked 
browser vendors to allow XMLHttpRequest to make cross-domain requests.</p>
-<p>Cross Origin Resource Sharing is a way to explicitly alter the same-origin 
policy for a given application or API. In order to allow for applications to 
make cross domain requests through Apache Knox, we need to configure the CORS 
filter of the WebAppSec provider.</p>
-<h4><a id="HTTP+Strict-Transport-Security+-+HSTS">HTTP 
Strict-Transport-Security - HSTS</a> <a 
href="#HTTP+Strict-Transport-Security+-+HSTS"><img 
src="markbook-section-link.png"/></a></h4>
-<p>HTTP Strict Transport Security (HSTS) is a web security policy mechanism 
which helps to protect websites against protocol downgrade attacks and cookie 
hijacking. It allows web servers to declare that web browsers (or other 
complying user agents) should only interact with it using secure HTTPS 
connections and never via the insecure HTTP protocol.</p>
 <h4><a id="Configuration">Configuration</a> <a href="#Configuration"><img 
src="markbook-section-link.png"/></a></h4>
 <h5><a id="Overview">Overview</a> <a href="#Overview"><img 
src="markbook-section-link.png"/></a></h5>
 <p>As with all providers in the Knox gateway, the web app security provider is 
configured through provider parameters. Unlike many other providers, the web 
app security provider may actually host multiple vulnerability/security 
filters. Currently, we only have implementations for CSRF, CORS and HTTP STS 
but others might follow, and you may be interested in creating your own.</p>
@@ -4347,7 +4336,7 @@ APACHE_HOME/bin/apachectl -k stop
     
&lt;param&gt;&lt;name&gt;csrf.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;csrf.customHeader&lt;/name&gt;&lt;value&gt;X-XSRF-Header&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;csrf.methodsToIgnore&lt;/name&gt;&lt;value&gt;GET,OPTIONS,HEAD&lt;/value&gt;&lt;/param&gt;
-    
&lt;param&gt;&lt;name&gt;cors.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
+    
&lt;param&gt;&lt;name&gt;cors.enabled&lt;/name&gt;&lt;value&gt;false&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;xframe.options.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;xss.protection.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
     
&lt;param&gt;&lt;name&gt;strict.transport.enabled&lt;/name&gt;&lt;value&gt;true&lt;/value&gt;&lt;/param&gt;
@@ -4356,6 +4345,10 @@ APACHE_HOME/bin/apachectl -k stop
 <h4><a id="Descriptions">Descriptions</a> <a href="#Descriptions"><img 
src="markbook-section-link.png"/></a></h4>
 <p>The following tables describes the configuration options for the web app 
security provider:</p>
 <h5><a id="CSRF">CSRF</a> <a href="#CSRF"><img 
src="markbook-section-link.png"/></a></h5>
+<p>Cross site request forgery (CSRF) attacks attempt to force an authenticated 
user to execute functionality without their knowledge. By presenting them with 
a link or image that when clicked invokes a request to another site with which 
the user may have already established an active session.</p>
+<p>CSRF is entirely a browser-based attack. Some background knowledge of how 
browsers work enables us to provide a filter that will prevent CSRF attacks. 
HTTP requests from a web browser performed via form, image, iframe, etc. are 
unable to set custom HTTP headers. The only way to create a HTTP request from a 
browser with a custom HTTP header is to use a technology such as JavaScript 
XMLHttpRequest or Flash. These technologies can set custom HTTP headers but 
have security policies built in to prevent web sites from sending requests to 
each other unless specifically allowed by policy. </p>
+<p>This means that a website www.bad.com cannot send a request to <a 
href="http://bank.example.com";>http://bank.example.com</a> with the custom 
header X-XSRF-Header unless they use a technology such as a XMLHttpRequest. 
That technology would prevent such a request from being made unless the 
bank.example.com domain specifically allowed it. This then results in a REST 
endpoint that can only be called via XMLHttpRequest (or similar technology).</p>
+<p>NOTE: by enabling this protection within the topology, this custom header 
will be required for <em>all</em> clients that interact with it - not just 
browsers.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -4390,6 +4383,8 @@ APACHE_HOME/bin/apachectl -k stop
 <p>Omitting the <code>--header &quot;X-XSRF-Header: valid&quot;</code> above 
should result in an HTTP 400 bad_request.</p>
 <p>Disabling the provider will then allow a request that is missing the header 
through. </p>
 <h5><a id="CORS">CORS</a> <a href="#CORS"><img 
src="markbook-section-link.png"/></a></h5>
+<p>For security reasons, browsers restrict cross-origin HTTP requests 
initiated from within scripts. For example, XMLHttpRequest follows the 
same-origin policy. So, a web application using XMLHttpRequest could only make 
HTTP requests to its own domain. To improve web applications, developers asked 
browser vendors to allow XMLHttpRequest to make cross-domain requests.</p>
+<p>Cross Origin Resource Sharing is a way to explicitly alter the same-origin 
policy for a given application or API. In order to allow for applications to 
make cross domain requests through Apache Knox, we need to configure the CORS 
filter of the WebAppSec provider.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -4402,7 +4397,7 @@ APACHE_HOME/bin/apachectl -k stop
   <tbody>
     <tr>
       <td>cors.enabled </td>
-      <td>This parameter enables the CORS capabilities</td>
+      <td>Setting this parameter to true allows cross origin requests. The 
default of false prevents cross origin requests.</td>
       <td>false</td>
     </tr>
     <tr>
@@ -4520,7 +4515,7 @@ APACHE_HOME/bin/apachectl -k stop
   </tbody>
 </table>
 <h5><a id="HTTP+Strict+Transport+Security">HTTP Strict Transport Security</a> 
<a href="#HTTP+Strict+Transport+Security"><img 
src="markbook-section-link.png"/></a></h5>
-<p>Web applications can be protected by protocol downgrade attacks and cookie 
hijacking by adding HTTP Strict Transport Security response header.</p>
+<p>HTTP Strict Transport Security (HSTS) is a web security policy mechanism 
which helps to protect websites against protocol downgrade attacks and cookie 
hijacking. It allows web servers to declare that web browsers (or other 
complying user agents) should only interact with it using secure HTTPS 
connections and never via the insecure HTTP protocol.</p>
 <h6><a id="Config">Config</a> <a href="#Config"><img 
src="markbook-section-link.png"/></a></h6>
 <table>
   <thead>
@@ -4852,15 +4847,6 @@ APACHE_HOME/bin/apachectl -k stop
 <p>To enable SSO for REST API access through the Knox gateway, you need to 
protect your Hadoop services with the SSOCookieProvider configured to use the 
KnoxSSO service (sandbox.xml topology):</p>
 <pre><code>&lt;gateway&gt;
   &lt;provider&gt;
-    &lt;role&gt;webappsec&lt;/role&gt;
-    &lt;name&gt;WebAppSec&lt;/name&gt;
-    &lt;enabled&gt;true&lt;/enabled&gt;
-    &lt;param&gt;
-      &lt;name&gt;cors.enabled&lt;/name&gt;
-      &lt;value&gt;true&lt;/value&gt;
-    &lt;/param&gt;
-  &lt;/provider&gt;
-  &lt;provider&gt;
     &lt;role&gt;federation&lt;/role&gt;
     &lt;name&gt;SSOCookieProvider&lt;/name&gt;
     &lt;enabled&gt;true&lt;/enabled&gt;

Modified: knox/site/index.html
URL: 
http://svn.apache.org/viewvc/knox/site/index.html?rev=1875157&r1=1875156&r2=1875157&view=diff
==============================================================================
--- knox/site/index.html (original)
+++ knox/site/index.html Fri Mar 13 15:01:22 2020
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.8.1 from 
src/site/markdown/index.md at 2020-03-12
+ | Generated by Apache Maven Doxia Site Renderer 1.8.1 from 
src/site/markdown/index.md at 2020-03-13
  | Rendered using Apache Maven Fluido Skin 1.7
 -->
 <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20200312" />
+    <meta name="Date-Revision-yyyymmdd" content="20200313" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Knox Gateway &#x2013; Announcing Apache Knox 1.3.0!</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.min.css" />
@@ -40,7 +40,7 @@
 
       <div id="breadcrumbs">
         <ul class="breadcrumb">
-        <li id="publishDate">Last Published: 2020-03-12</li>
+        <li id="publishDate">Last Published: 2020-03-13</li>
         </ul>
       </div>
       <div class="row-fluid">

Modified: knox/site/issue-management.html
URL: 
http://svn.apache.org/viewvc/knox/site/issue-management.html?rev=1875157&r1=1875156&r2=1875157&view=diff
==============================================================================
--- knox/site/issue-management.html (original)
+++ knox/site/issue-management.html Fri Mar 13 15:01:22 2020
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.8.1 from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.0.0:issue-management
 at 2020-03-12
+ | Generated by Apache Maven Doxia Site Renderer 1.8.1 from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.0.0:issue-management
 at 2020-03-13
  | Rendered using Apache Maven Fluido Skin 1.7
 -->
 <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20200312" />
+    <meta name="Date-Revision-yyyymmdd" content="20200313" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Knox Gateway &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.min.css" />
@@ -40,7 +40,7 @@
 
       <div id="breadcrumbs">
         <ul class="breadcrumb">
-        <li id="publishDate">Last Published: 2020-03-12</li>
+        <li id="publishDate">Last Published: 2020-03-13</li>
         </ul>
       </div>
       <div class="row-fluid">

Modified: knox/site/licenses.html
URL: 
http://svn.apache.org/viewvc/knox/site/licenses.html?rev=1875157&r1=1875156&r2=1875157&view=diff
==============================================================================
--- knox/site/licenses.html (original)
+++ knox/site/licenses.html Fri Mar 13 15:01:22 2020
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.8.1 from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.0.0:licenses at 
2020-03-12
+ | Generated by Apache Maven Doxia Site Renderer 1.8.1 from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.0.0:licenses at 
2020-03-13
  | Rendered using Apache Maven Fluido Skin 1.7
 -->
 <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20200312" />
+    <meta name="Date-Revision-yyyymmdd" content="20200313" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Knox Gateway &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.min.css" />
@@ -40,7 +40,7 @@
 
       <div id="breadcrumbs">
         <ul class="breadcrumb">
-        <li id="publishDate">Last Published: 2020-03-12</li>
+        <li id="publishDate">Last Published: 2020-03-13</li>
         </ul>
       </div>
       <div class="row-fluid">

Modified: knox/site/mailing-lists.html
URL: 
http://svn.apache.org/viewvc/knox/site/mailing-lists.html?rev=1875157&r1=1875156&r2=1875157&view=diff
==============================================================================
--- knox/site/mailing-lists.html (original)
+++ knox/site/mailing-lists.html Fri Mar 13 15:01:22 2020
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.8.1 from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.0.0:mailing-lists 
at 2020-03-12
+ | Generated by Apache Maven Doxia Site Renderer 1.8.1 from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.0.0:mailing-lists 
at 2020-03-13
  | Rendered using Apache Maven Fluido Skin 1.7
 -->
 <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20200312" />
+    <meta name="Date-Revision-yyyymmdd" content="20200313" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Knox Gateway &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.min.css" />
@@ -40,7 +40,7 @@
 
       <div id="breadcrumbs">
         <ul class="breadcrumb">
-        <li id="publishDate">Last Published: 2020-03-12</li>
+        <li id="publishDate">Last Published: 2020-03-13</li>
         </ul>
       </div>
       <div class="row-fluid">


Reply via email to