SonarSource Rules
  • Products

    In-IDE

    Code Quality and Security in your IDE with SonarQube Ide

    IDE extension that lets you fix coding issues before they exist!

    Discover SonarQube for IDE

    SaaS

    Code Quality and Security in the cloud with SonarQube Cloud

    Setup is effortless and analysis is automatic for most languages

    Discover SonarQube Cloud

    Self-Hosted

    Code Quality and Security Self-Hosted with SonarQube Server

    Fast, accurate analysis; enterprise scalability

    Discover SonarQube Server
  • SecretsSecrets
  • ABAPABAP
  • AnsibleAnsible
  • ApexApex
  • AzureResourceManagerAzureResourceManager
  • CC
  • C#C#
  • C++C++
  • CloudFormationCloudFormation
  • COBOLCOBOL
  • CSSCSS
  • DartDart
  • DockerDocker
  • FlexFlex
  • GitHub ActionsGitHub Actions
  • GoGo
  • HTMLHTML
  • JavaJava
  • JavaScriptJavaScript
  • JSONJSON
  • JCLJCL
  • KotlinKotlin
  • KubernetesKubernetes
  • Objective CObjective C
  • PHPPHP
  • PL/IPL/I
  • PL/SQLPL/SQL
  • PythonPython
  • RPGRPG
  • RubyRuby
  • RustRust
  • ScalaScala
  • ShellShell
  • SwiftSwift
  • TerraformTerraform
  • TextText
  • TypeScriptTypeScript
  • T-SQLT-SQL
  • VB.NETVB.NET
  • VB6VB6
  • XMLXML
  • YAMLYAML
XML

XML static code analysis

Unique rules to find Bugs and Code Smells in your XML code

  • All rules 37
  • Vulnerability7
  • Bug5
  • Security Hotspot9
  • Code Smell16
 
Tags
    Impact
      Clean code attribute
        1. Components should be explicitly exported

           Vulnerability
        2. Defining a single permission for read and write access of content providers is security-sensitive

           Security Hotspot
        3. Custom permissions should not be defined in the "android.permission" namespace

           Vulnerability
        4. Allowing application backups is security-sensitive

           Security Hotspot
        5. Requesting dangerous Android permissions is security-sensitive

           Security Hotspot
        6. Exported component access should be restricted with appropriate permissions

           Vulnerability
        7. Using clear-text protocols is security-sensitive

           Security Hotspot
        8. Receiving intents is security-sensitive

           Security Hotspot
        9. Having a permissive Cross-Origin Resource Sharing policy is security-sensitive

           Security Hotspot
        10. Delivering code in production with debug features activated is security-sensitive

           Security Hotspot
        11. Hibernate should not update database schemas

           Bug
        12. "DefaultMessageListenerContainer" instances should not drop messages during restarts

           Bug
        13. "SingleConnectionFactory" instances should be set to "reconnectOnException"

           Bug
        14. pom elements should be in the recommended order

           Code Smell
        15. Dependencies should not have "system" scope

           Bug
        16. Deprecated "${pom}" properties should not be used

           Code Smell
        17. Artifact ids should follow a naming convention

           Code Smell
        18. Group ids should follow a naming convention

           Code Smell
        19. Track uses of disallowed dependencies

           Code Smell
        20. Struts validation forms should have unique names

           Vulnerability
        21. "action" mappings should not have too many "forward" entries

           Code Smell
        22. Struts filters should not miss their corresponding filter-map

           Vulnerability
        23. Creating cookies without the "HttpOnly" flag is security-sensitive

           Security Hotspot
        24. EJB interceptor exclusions should be declared as annotations

           Code Smell
        25. Default EJB interceptors should be declared in "ejb-jar.xml"

           Vulnerability
        26. Basic authentication should not be used

           Vulnerability
        27. Newlines should follow each element

           Code Smell
        28. XML parser failure

           Code Smell
        29. Hard-coded credentials are security-sensitive

           Security Hotspot
        30. XML files containing a prolog header should start with "<?xml" characters

           Bug
        31. Track breaches of an XPath rule

           Code Smell
        32. Sections of code should not be commented out

           Code Smell
        33. Track uses of "TODO" tags

           Code Smell
        34. Track uses of "FIXME" tags

           Code Smell
        35. Source code should be indented consistently

           Code Smell
        36. Tabulation characters should not be used

           Code Smell
        37. Lines should not be too long

           Code Smell

        Default EJB interceptors should be declared in "ejb-jar.xml"

        intentionality - complete
        security
        maintainability
        Vulnerability

          Why is this an issue?

          How can I fix it?

          More Info

          EJB interceptors provide a way to define code that can be executed before and after a method call. They are typically used for logging, testing, auditing or security purposes.

          Interceptor methods can be applied or bound at three levels:

          • The default interceptor is called for each bean as part of the deployment and can only be applied through an XML file.
          • The class-level interceptor is invoked for each method of the bean. The class-level interceptor can be applied both through an annotation and through an XML file.
          • The method-level interceptor is invoked for a specific method of the bean. The method-level interceptor can be applied both through an annotation and through an XML file.

          If you want to declare these methods in an XML file, you must declare them in a file named ejb-jar.xml. Otherwise, they may not be applied or used as intended.

          What is the potential impact?

          If EJB interceptors are not applied or used as intended, inconsistent application behavior in the app business logic or security might happen.

          Below are some real-world examples of this issue.

          Inconsistent Behavior

          Interceptors declared outside of ejb-jar.xml may not be applied consistently across all EJBs. This can lead to unpredictable application behavior, making debugging and maintaining the code difficult.

          Security Risks

          Interceptors often handle sensitive operations such as security checks or transaction management. If an interceptor is not applied due to incorrect declaration, these operations may not be performed, leading to potential security vulnerabilities.
          For example, if an interceptor responsible for user authentication is not applied, unauthorized users may gain access to sensitive information.

          Performance Impact

          Interceptors can also be used to improve application performance, for instance, by managing database transactions. If these interceptors are not applied, it could lead to performance issues, such as longer response times or increased server load.

          This could open the way for efficient Denial of Service attacks.

            Available In:
          • SonarQube IdeCatch issues on the fly,
            in your IDE
          • SonarQube CloudDetect issues in your GitHub, Azure DevOps Services, Bitbucket Cloud, GitLab repositories
          • SonarQube Community BuildAnalyze code in your
            on-premise CI
            Available Since
            9.3
          • SonarQube ServerAnalyze code in your
            on-premise CI
            Developer Edition
            Available Since
            9.3

          © 2008-2025 SonarSource SA. All rights reserved.

          Privacy Policy | Cookie Policy | Terms of Use