Skip to content

Commit 30a2620

Browse files
committed
C#: Tidy up docs, query metadata and add tests.
1 parent eeffd7c commit 30a2620

9 files changed

Lines changed: 35 additions & 42 deletions
Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,51 @@
1-
<!DOCTYPE qhelp PUBLIC
2-
"-//Semmle//qhelp//EN"
3-
"qhelp.dtd">
1+
<!DOCTYPE qhelp PUBLIC "-//Semmle//qhelp//EN" "qhelp.dtd">
42
<qhelp>
53

64
<overview>
75
<p>
8-
<code>Request validation</code>
9-
is a feature in ASP.NET that protects web applications against
10-
potentially malicious content
11-
in requests, specifically against
6+
Request validation is a feature in ASP.NET that protects web applications against
7+
potentially malicious content in requests, specifically against
128
cross-site scripting attacks (XSS).
139
</p>
1410

1511
</overview>
1612
<recommendation>
1713

1814
<p>
19-
Enable the directive validateRequest in your web.config file:
15+
Enable the directive <code>validateRequest</code> in your <code>web.config</code> file:
16+
2017
<code>
21-
<pages validateRequest="true" />
18+
&lt;pages validateRequest="true" /&gt;
2219
</code>
2320
</p>
2421

2522
</recommendation>
2623
<example>
2724

2825
<p>
29-
The following example shows the 'validateRequest' flag set to true in
30-
a
31-
<code>Web.config</code>
32-
file for ASP.NET. This will protect the web application against
33-
common XSS attacks:
26+
The following example shows the <code>validateRequest</code> flag set to <code>false</code>
27+
in a <code>Web.config</code> file for ASP.NET. This will disable validation, and leave
28+
the the web application vulnerable against common XSS attacks:
3429
</p>
3530

36-
<sample src="Web.config.ASPNetPagesValidateRequest.good" />
31+
<sample src="ASPNetPagesValidateRequestBad.config" />
3732

3833
<p>
39-
If validateRequest is set to
40-
<code>false</code>
41-
, validation is disabled:
34+
If validateRequest is set to <code>true</code>, validation is enabled:
4235
</p>
4336

44-
<sample src="Web.config.ASPNetPagesValidateRequest.bad" />
37+
<sample src="ASPNetPagesValidateRequestGood.config" />
4538

4639
</example>
4740
<references>
4841

4942
<li>
5043
MSDN:
5144
<a
52-
href=https://docs.microsoft.com/en-us/previous-versions/aspnet/hh882339(v=vs.110)?redirectedfrom=MSDN ">Request
53-
Validation in ASP.NET</a>
54-
.
55-
</li>
56-
<li>
57-
MSDN:
58-
<a
59-
href="https://docs.microsoft.com/en-us/previous-versions/aspnet/debza5t0(v=vs.100)?redirectedfrom=MSDN">Validation ASP.NET Controls</a>
60-
.
45+
href="https://docs.microsoft.com/en-us/previous-versions/aspnet/hh882339(v=vs.110)?redirectedfrom=MSDN">
46+
Request Validation in ASP.NET
47+
</a>.
6148
</li>
6249

63-
6450
</references>
6551
</qhelp>
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
/**
2-
* @name Page Request Validation is disabled
3-
* @description ASP.NET Pages should not disable the built-in request validation.
2+
* @name Page request validation is disabled
3+
* @description ASP.NET pages should not disable the built-in request validation.
44
* @kind problem
5+
* @problem.severity warning
6+
* @id cs/web/request-validation-disabled
7+
* @tags security
8+
* frameworks/asp.net
9+
* external/cwe/cwe-16
510
*/
611

712
import csharp
@@ -11,4 +16,4 @@ from SystemWebXMLElement web, XMLAttribute requestvalidateAttribute
1116
where
1217
requestvalidateAttribute = web.getAChild("pages").getAttribute("validateRequest") and
1318
requestvalidateAttribute.getValue().toLowerCase() = "false"
14-
select requestvalidateAttribute, "validateRequest is set to false"
19+
select requestvalidateAttribute, "The 'validateRequest' attribute is set to 'false'."

csharp/ql/src/Security Features/CWE-016/Web.config.ASPNetPagesValidateRequest.bad renamed to csharp/ql/src/Security Features/CWE-016/ASPNetPagesValidateRequestBad.config

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
1-
<?xml version="1.0" encoding="utf-8" ?>
21
<configuration>
32
<system.web>
4-
<compilation
5-
defaultLanguage="c#"
6-
/>
73
<pages validateRequest="false" />
8-
...
94
</system.web>
105
</configuration>

csharp/ql/src/Security Features/CWE-016/Web.config.ASPNetPagesValidateRequest.good renamed to csharp/ql/src/Security Features/CWE-016/ASPNetPagesValidateRequestGood.config

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
1-
<?xml version="1.0" encoding="utf-8" ?>
21
<configuration>
32
<system.web>
4-
<compilation
5-
defaultLanguage="c#"
6-
/>
73
<pages validateRequest="true" />
8-
...
94
</system.web>
105
</configuration>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
| ASPNetPagesValidateRequestBad.config:3:5:3:38 | validateRequest=false | The 'validateRequest' attribute is set to 'false'. |
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Security Features/CWE-016/ASPNetPagesValidateRequest.ql
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<configuration>
2+
<system.web>
3+
<pages validateRequest="false" />
4+
</system.web>
5+
</configuration>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<configuration>
2+
<system.web>
3+
<pages validateRequest="true" />
4+
</system.web>
5+
</configuration>

csharp/ql/test/query-tests/Security Features/CWE-016/ASPNetPagesValidateRequest/Program.cs

Whitespace-only changes.

0 commit comments

Comments
 (0)