-
Notifications
You must be signed in to change notification settings - Fork 9.4k
[TEST] Enhanced Customer Data Validation to Mitigate Code Injection Risks #39131
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 2.4-develop
Are you sure you want to change the base?
Conversation
Hi @in-session. Thank you for your contribution! Add the comment under your pull request to deploy test or vanilla Magento instance:
❗ Automated tests can be triggered manually with an appropriate comment:
Allowed build names are:
You can find more information about the builds here For more details, review the Code Contributions documentation. |
@magento run all tests |
@magento run all tests |
@magento run all tests |
Testdrive for:
#39002
#39030
#38345
#38331
This Pull Request introduces several significant improvements to the validation process in Magento:
Centralized Validation for Customer Fields:
The validation logic for customer-related fields (such as names, phone numbers, and addresses) has been moved to global validators. This change ensures that consistent validation rules are applied across the entire application, improving both maintainability and reliability.
Enhanced Field Validation Tests:
The validation tests for customer fields have been significantly extended. This includes more comprehensive checks for various character sets, ensuring that fields such as city names, street addresses, and customer names are validated against a wide range of acceptable characters while preventing invalid inputs.
Implementation of Global Forbidden Patterns:
A new GlobalForbiddenPatterns validator has been introduced to mitigate the risk of code injection. This validator applies a set of global regex patterns designed to detect and block potentially malicious input, thereby enhancing the security of the application.
to fix the issus:
The pull is aimed at all public areas such as Checkout, Register Newsletter and Review, I hope I haven't forgotten anyone
Before:

Checkout:
There was no server-side validation of the fields, which enabled code injection:
Review:


Contact:

After
The patterns from merge #38345 were made globally available and integrated into the quote, this already minimises code injection:

However, there are many other fields that do not run through the pattern, so the GlobalForbiddenPatterns was created, which can be activated via the admin:

This checks the data again to prevent code injection, for example the company field:

Review:

Create Account:
