Skip to content

Commit

Permalink
Rulesets: tidy up
Browse files Browse the repository at this point in the history
Tidy up the XML rulesets so they can pass validation against the XSD as well as for XML code style.
  • Loading branch information
jrfnl committed Feb 27, 2020
1 parent 653ec7d commit 7707650
Show file tree
Hide file tree
Showing 3 changed files with 118 additions and 119 deletions.
2 changes: 1 addition & 1 deletion Security/ruleset.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Security" namespace="PHPCS_SecurityAudit\Security" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/squizlabs/PHP_CodeSniffer/master/phpcs.xsd">
<description>Security related coding standard.</description>
<description>Security related coding standard.</description>
</ruleset>
97 changes: 48 additions & 49 deletions example_base_ruleset.xml
Original file line number Diff line number Diff line change
@@ -1,53 +1,52 @@
<?xml version="1.0"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="PHPSecurity" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/squizlabs/PHP_CodeSniffer/master/phpcs.xsd">
<description>Rules for standard PHP projects</description>

<!-- Code Reviews Rules -->
<!--
<rule ref="Generic.CodeAnalysis.UnusedFunctionParameter"/>
<rule ref="PEAR"/>
-->

<!-- Security Code Reviews Rules -->

<!-- Global properties -->
<!-- Please note that not every sniff uses them and they can be overwritten by rule -->
<!-- Paranoia mode: Will generate more alerts but will miss less vulnerabilites. Good for assisting manual code review. -->
<config name="ParanoiaMode" value="1"/>

<!-- BadFunctions -->
<!-- PHP functions that can lead to security issues -->
<rule ref="Security.BadFunctions.Asserts"/>
<rule ref="Security.BadFunctions.Backticks"/>
<rule ref="Security.BadFunctions.CallbackFunctions"/>
<rule ref="Security.BadFunctions.CryptoFunctions"/>
<rule ref="Security.BadFunctions.EasyRFI"/>
<rule ref="Security.BadFunctions.EasyXSS">
<properties>
<!-- Comment out to follow global ParanoiaMode -->
<property name="forceParanoia" value="1"/>
</properties>
</rule>
<rule ref="Security.BadFunctions.ErrorHandling"/>
<rule ref="Security.BadFunctions.FilesystemFunctions"/>
<rule ref="Security.BadFunctions.FringeFunctions"/>
<rule ref="Security.BadFunctions.FunctionHandlingFunctions"/>
<rule ref="Security.BadFunctions.Mysqli"/>
<rule ref="Security.BadFunctions.NoEvals"/>
<rule ref="Security.BadFunctions.Phpinfos"/>
<rule ref="Security.BadFunctions.PregReplace"/>
<rule ref="Security.BadFunctions.SQLFunctions"/>
<rule ref="Security.BadFunctions.SystemExecFunctions"/>

<!-- CVE -->
<!-- Entries from CVE database from vendor PHP and bugs.php.net -->
<rule ref="Security.CVE.CVE20132110"/>
<rule ref="Security.CVE.CVE20134113"/>

<!-- Misc -->
<rule ref="Security.Misc.BadCorsHeader"/>
<rule ref="Security.Misc.IncludeMismatch"/>
<rule ref="Security.Misc.TypeJuggle"/>
<description>Rules for standard PHP projects</description>

<!-- Code Reviews Rules -->
<!--
<rule ref="Generic.CodeAnalysis.UnusedFunctionParameter"/>
<rule ref="PEAR"/>
-->

<!-- Security Code Reviews Rules -->

<!-- Global properties. -->
<!-- Please note that not every sniff uses them and they can be overwritten per rule. -->
<!-- Paranoia mode: Will generate more alerts but will miss less vulnerabilites. Good for assisting manual code review. -->
<config name="ParanoiaMode" value="1"/>

<!-- BadFunctions -->
<!-- PHP functions that can lead to security issues -->
<rule ref="Security.BadFunctions.Asserts"/>
<rule ref="Security.BadFunctions.Backticks"/>
<rule ref="Security.BadFunctions.CallbackFunctions"/>
<rule ref="Security.BadFunctions.CryptoFunctions"/>
<rule ref="Security.BadFunctions.EasyRFI"/>
<rule ref="Security.BadFunctions.EasyXSS">
<properties>
<!-- Comment out to follow global ParanoiaMode -->
<property name="forceParanoia" value="1"/>
</properties>
</rule>
<rule ref="Security.BadFunctions.ErrorHandling"/>
<rule ref="Security.BadFunctions.FilesystemFunctions"/>
<rule ref="Security.BadFunctions.FringeFunctions"/>
<rule ref="Security.BadFunctions.FunctionHandlingFunctions"/>
<rule ref="Security.BadFunctions.Mysqli"/>
<rule ref="Security.BadFunctions.NoEvals"/>
<rule ref="Security.BadFunctions.Phpinfos"/>
<rule ref="Security.BadFunctions.PregReplace"/>
<rule ref="Security.BadFunctions.SQLFunctions"/>
<rule ref="Security.BadFunctions.SystemExecFunctions"/>

<!-- CVE -->
<!-- Entries from CVE database from vendor PHP and bugs.php.net -->
<rule ref="Security.CVE.CVE20132110"/>
<rule ref="Security.CVE.CVE20134113"/>

<!-- Misc -->
<rule ref="Security.Misc.BadCorsHeader"/>
<rule ref="Security.Misc.IncludeMismatch"/>
<rule ref="Security.Misc.TypeJuggle"/>

</ruleset>

138 changes: 69 additions & 69 deletions example_drupal7_ruleset.xml
Original file line number Diff line number Diff line change
@@ -1,79 +1,79 @@
<?xml version="1.0"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Drupal7Security" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/squizlabs/PHP_CodeSniffer/master/phpcs.xsd">
<description>Rules for Drupal 7 projects</description>
<!-- Code Reviews Rules -->
<!--
<rule ref="Generic.CodeAnalysis.UnusedFunctionParameter"/>
<rule ref="PEAR"/>
-->
<description>Rules for Drupal 7 projects</description>

<!-- Security Code Reviews Rules -->
<!-- Code Reviews Rules -->
<!--
<rule ref="Generic.CodeAnalysis.UnusedFunctionParameter"/>
<rule ref="PEAR"/>
-->

<!-- Global properties -->
<!-- Please note that not every sniff uses them and they can be overwritten by rule -->
<!-- Framework or CMS used. Must be a class under Security_Sniffs. -->
<config name="CmsFramework" value="Drupal7"/>
<!-- Paranoia mode: Will generate more alerts but will miss less vulnerabilites. Good for assisting manual code review. -->
<config name="ParanoiaMode" value="1"/>
<!-- Security Code Reviews Rules -->

<!-- BadFunctions -->
<!-- PHP functions that can lead to security issues -->
<rule ref="Security.BadFunctions.Asserts"/>
<rule ref="Security.BadFunctions.Backticks"/>
<rule ref="Security.BadFunctions.CallbackFunctions"/>
<rule ref="Security.BadFunctions.CryptoFunctions"/>
<rule ref="Security.BadFunctions.EasyRFI"/>
<rule ref="Security.BadFunctions.EasyXSS"/>
<rule ref="Security.BadFunctions.ErrorHandling"/>
<rule ref="Security.BadFunctions.FilesystemFunctions"/>
<rule ref="Security.BadFunctions.FringeFunctions"/>
<rule ref="Security.BadFunctions.FunctionHandlingFunctions"/>
<rule ref="Security.BadFunctions.Mysqli"/>
<rule ref="Security.BadFunctions.NoEvals"/>
<rule ref="Security.BadFunctions.Phpinfos"/>
<rule ref="Security.BadFunctions.PregReplace"/>
<rule ref="Security.BadFunctions.SQLFunctions"/>
<rule ref="Security.BadFunctions.SystemExecFunctions"/>
<!-- Global properties. -->
<!-- Please note that not every sniff uses them and they can be overwritten per rule. -->
<!-- Framework or CMS used. Must be a class under Security_Sniffs. -->
<config name="CmsFramework" value="Drupal7"/>
<!-- Paranoia mode: Will generate more alerts but will miss less vulnerabilites. Good for assisting manual code review. -->
<config name="ParanoiaMode" value="1"/>

<!-- CVE -->
<!-- Entries from CVE database from vendor PHP and bugs.php.net -->
<rule ref="Security.CVE.CVE20132110"/>
<rule ref="Security.CVE.CVE20134113"/>
<!-- BadFunctions -->
<!-- PHP functions that can lead to security issues -->
<rule ref="Security.BadFunctions.Asserts"/>
<rule ref="Security.BadFunctions.Backticks"/>
<rule ref="Security.BadFunctions.CallbackFunctions"/>
<rule ref="Security.BadFunctions.CryptoFunctions"/>
<rule ref="Security.BadFunctions.EasyRFI"/>
<rule ref="Security.BadFunctions.EasyXSS"/>
<rule ref="Security.BadFunctions.ErrorHandling"/>
<rule ref="Security.BadFunctions.FilesystemFunctions"/>
<rule ref="Security.BadFunctions.FringeFunctions"/>
<rule ref="Security.BadFunctions.FunctionHandlingFunctions"/>
<rule ref="Security.BadFunctions.Mysqli"/>
<rule ref="Security.BadFunctions.NoEvals"/>
<rule ref="Security.BadFunctions.Phpinfos"/>
<rule ref="Security.BadFunctions.PregReplace"/>
<rule ref="Security.BadFunctions.SQLFunctions"/>
<rule ref="Security.BadFunctions.SystemExecFunctions"/>

<!-- Misc -->
<rule ref="Security.Misc.BadCorsHeader"/>
<rule ref="Security.Misc.IncludeMismatch"/>
<!-- CVE -->
<!-- Entries from CVE database from vendor PHP and bugs.php.net. -->
<rule ref="Security.CVE.CVE20132110"/>
<rule ref="Security.CVE.CVE20134113"/>

<!-- Drupal7 -->
<!-- Specific security issues of Drupal7 and advisories -->
<rule ref="Security.Drupal7.AdvisoriesContrib">
<exclude-pattern>(?&lt;!\.info)$</exclude-pattern>
</rule>
<rule ref="Security.Drupal7.AdvisoriesCore">
<exclude-pattern>(?&lt;!includes\/bootstrap\.inc)$</exclude-pattern>
</rule>
<rule ref="Security.Drupal7.SQLi"/>
<rule ref="Security.Drupal7.SQLi.D7NoDbQuery"/>
<rule ref="Security.Drupal7.SQLi.D7DbQuerySQLi"/>
<rule ref="Security.Drupal7.SQLi.D7DbQueryDirectVar"/>
<rule ref="Security.Drupal7.XSSPTheme"/>
<rule ref="Security.Drupal7.UserInputWatch">
<properties>
<property name="FormThreshold" value="10"/>
<property name="FormStateThreshold" value="10"/>
</properties>
</rule>
<rule ref="Security.Drupal7.XSSFormValue"/>
<rule ref="Security.Drupal7.XSSHTMLConstruct"/>
<rule ref="Security.Drupal7.DbQueryAC">
<properties>
<!-- Comment out to follow global ParanoiaMode -->
<property name="forceParanoia" value="1"/>
</properties>
</rule>
<rule ref="Security.Drupal7.DynQueries"/>
<rule ref="Security.Drupal7.Cachei"/>
<rule ref="Security.Drupal7.HttpRequest"/>
<!-- Misc -->
<rule ref="Security.Misc.BadCorsHeader"/>
<rule ref="Security.Misc.IncludeMismatch"/>

</ruleset>
<!-- Drupal 7 -->
<!-- Specific security issues of Drupal7 and advisories. -->
<rule ref="Security.Drupal7.AdvisoriesContrib">
<exclude-pattern>(?&lt;!\.info)$</exclude-pattern>
</rule>
<rule ref="Security.Drupal7.AdvisoriesCore">
<exclude-pattern>(?&lt;!includes\/bootstrap\.inc)$</exclude-pattern>
</rule>
<rule ref="Security.Drupal7.SQLi"/>
<rule ref="Security.Drupal7.SQLi.D7NoDbQuery"/>
<rule ref="Security.Drupal7.SQLi.D7DbQuerySQLi"/>
<rule ref="Security.Drupal7.SQLi.D7DbQueryDirectVar"/>
<rule ref="Security.Drupal7.XSSPTheme"/>
<rule ref="Security.Drupal7.UserInputWatch">
<properties>
<property name="FormThreshold" value="10"/>
<property name="FormStateThreshold" value="10"/>
</properties>
</rule>
<rule ref="Security.Drupal7.XSSFormValue"/>
<rule ref="Security.Drupal7.XSSHTMLConstruct"/>
<rule ref="Security.Drupal7.DbQueryAC">
<properties>
<!-- Comment out to follow global ParanoiaMode -->
<property name="forceParanoia" value="1"/>
</properties>
</rule>
<rule ref="Security.Drupal7.DynQueries"/>
<rule ref="Security.Drupal7.Cachei"/>
<rule ref="Security.Drupal7.HttpRequest"/>

</ruleset>

0 comments on commit 7707650

Please sign in to comment.