Skip to content

Commit 8cafa6d

Browse files
author
Stephan Brandauer
committed
improve error message in CWE-830
1 parent 780fa97 commit 8cafa6d

2 files changed

Lines changed: 15 additions & 5 deletions

File tree

javascript/ql/src/Security/CWE-830/FunctionalityFromUntrustedSource.ql

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,18 +52,27 @@ abstract class IncludesUntrustedContent extends HTML::Element {
5252
class ScriptElementWithUntrustedContent extends IncludesUntrustedContent, HTML::ScriptElement {
5353
ScriptElementWithUntrustedContent() {
5454
not exists(string digest | not digest = "" | this.getIntegrityDigest() = digest) and
55-
(
56-
isUntrustedSourceUrl(this.getSourcePath())
57-
or
58-
isCdnUrlWithCheckingRequired(this.getSourcePath())
59-
)
55+
isUntrustedSourceUrl(this.getSourcePath())
6056
}
6157

6258
override string getProblem() {
6359
result = "script elements should use an HTTPS url and/or use the integrity attribute"
6460
}
6561
}
6662

63+
/** A script element that refers to untrusted content. */
64+
class CDNScriptElementWithUntrustedContent extends IncludesUntrustedContent, HTML::ScriptElement {
65+
CDNScriptElementWithUntrustedContent() {
66+
not exists(string digest | not digest = "" | this.getIntegrityDigest() = digest) and
67+
isCdnUrlWithCheckingRequired(this.getSourcePath())
68+
}
69+
70+
override string getProblem() {
71+
result =
72+
"script elements that depend on this CDN should use an HTTPS url and use the integrity attribute"
73+
}
74+
}
75+
6776
/** An iframe element that includes untrusted content. */
6877
class IframeElementWithUntrustedContent extends HTML::IframeElement, IncludesUntrustedContent {
6978
IframeElementWithUntrustedContent() { isUntrustedSourceUrl(this.getSourcePath()) }
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
| FunctionalityFromUntrustedSource.html:6:9:6:56 | <script>...</> | HTML-element uses untrusted content (script elements should use an HTTPS url and/or use the integrity attribute) |
22
| FunctionalityFromUntrustedSource.html:9:9:9:58 | <iframe>...</> | HTML-element uses untrusted content (iframe elements should use an HTTPS url) |
33
| FunctionalityFromUntrustedSource.html:11:9:11:53 | <iframe>...</> | HTML-element uses untrusted content (iframe elements should use an HTTPS url) |
4+
| FunctionalityFromUntrustedSource.html:20:9:20:155 | <script>...</> | HTML-element uses untrusted content (script elements that depend on this CDN should use an HTTPS url and use the integrity attribute) |

0 commit comments

Comments
 (0)