[visualforce] Reorganize rules into categories
This commit is contained in:
@@ -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>
|
||||
|
||||
+2
-2
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user