[visualforce] Reorganize rules into categories

This commit is contained in:
Andreas Dangel
2017-11-03 16:37:34 +01:00
parent c466179c2a
commit cae170f4e2
11 changed files with 138 additions and 34 deletions
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<ruleset name="Best Practices"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>
Rules which enforce generally accepted best practices.
</description>
</ruleset>
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<ruleset name="Codestyle"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>
Rules which enforce a specific coding style.
</description>
</ruleset>
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<ruleset name="Design"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>
Rules that help you discover design issues.
</description>
</ruleset>
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<ruleset name="Documentation"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>
Rules that are related to code documentation.
</description>
</ruleset>
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<ruleset name="Errorprone"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>
Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
</description>
</ruleset>
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<ruleset name="Multithreading"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>
Rules that flag issues when dealing with multiple threads of execution.
</description>
</ruleset>
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<ruleset name="Performance"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>
Rules that flag suboptimal code.
</description>
</ruleset>
@@ -0,0 +1,44 @@
<?xml version="1.0"?>
<ruleset name="Security"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>
Rules that flag potential security flaws.
</description>
<rule name="VfCsrf"
since="5.6.0"
message="Avoid calling VF action upon page load"
class="net.sourceforge.pmd.lang.vf.rule.security.VfCsrfRule"
externalInfoUrl="${pmd.website.baseurl}/pmd_rules_vf_security.html#vfcsrf">
<description>
Avoid calling VF action upon page load as the action becomes vulnerable to CSRF.
</description>
<priority>3</priority>
<example>
<![CDATA[
<apex:page controller="AcRestActionsController" action="{!csrfInitMethod}" >
]]>
</example>
</rule>
<rule name="VfUnescapeEl"
since="5.6.0"
message="Avoid unescaped user controlled content in EL"
class="net.sourceforge.pmd.lang.vf.rule.security.VfUnescapeElRule"
externalInfoUrl="${pmd.website.baseurl}/pmd_rules_vf_security.html#vfunescapeel">
<description>
Avoid unescaped user controlled content in EL as it results in XSS.
</description>
<priority>3</priority>
<example>
<![CDATA[
<apex:outputText value="Potential XSS is {! here }" escape="false" />
]]>
</example>
</rule>
</ruleset>
@@ -2,4 +2,16 @@
# BSD-style license; for more info see http://pmd.sourceforge.net/license.html
#
rulesets.filenames=rulesets/vf/security.xml
rulesets.filenames=\
category/vf/security.xml
#
# categories without rules
#
# category/vf/bestpractices.xml
# category/vf/codestyle.xml
# category/vf/design.xml
# category/vf/documentation.xml
# category/vf/errorprone.xml
# category/vf/multithreading.xml
# category/vf/performance.xml
@@ -8,36 +8,7 @@
Rules concerning basic VF guidelines.
</description>
<rule name="VfUnescapeEl"
since="5.6.0"
message="Avoid unescaped user controlled content in EL"
class="net.sourceforge.pmd.lang.vf.rule.security.VfUnescapeElRule"
externalInfoUrl="${pmd.website.baseurl}/pmd_rules_vf_security.html#vfunescapeel">
<description>
Avoid unescaped user controlled content in EL as it results in XSS.
</description>
<priority>3</priority>
<example>
<![CDATA[
<apex:outputText value="Potential XSS is {! here }" escape="false" />
]]>
</example>
</rule>
<rule name="VfCsrf"
since="5.6.0"
message="Avoid calling VF action upon page load"
class="net.sourceforge.pmd.lang.vf.rule.security.VfCsrfRule"
externalInfoUrl="${pmd.website.baseurl}/pmd_rules_vf_security.html#vfcsrf">
<description>
Avoid calling VF action upon page load as the action becomes vulnerable to CSRF.
</description>
<priority>3</priority>
<example>
<![CDATA[
<apex:page controller="AcRestActionsController" action="{!csrfInitMethod}" >
]]>
</example>
</rule>
<rule ref="category/vf/VfCsrf" deprecated="true" />
<rule ref="category/vf/VfUnescapeEl" deprecated="true" />
</ruleset>
@@ -8,11 +8,11 @@ import net.sourceforge.pmd.testframework.SimpleAggregatorTst;
public class SecurityRulesTest extends SimpleAggregatorTst {
private static final String RULESET = "vf-security";
private static final String RULESET = "category/vf/security.xml";
@Override
public void setUp() {
addRule(RULESET, "VfUnescapeEl");
addRule(RULESET, "VfCsrf");
addRule(RULESET, "VfUnescapeEl");
}
}