-
Notifications
You must be signed in to change notification settings - Fork 195
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
SUPEE-7405 from Magento 1.9.3.0 - Hostname Validation #314
base: master
Are you sure you want to change the base?
Conversation
The Zend_Validate_Hostname validation was updated to add a DNS check of the A record for the domain.
} | ||
$result = checkdnsrr($toAscii, 'A'); | ||
} else { | ||
$idn = new Net_IDNA2(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Surely, at least "suggested" for "pear/Net_IDNA2" will need to be added for this. Also, this should probably be conditional.
Also, what if I don't have the Intl extension and I don't want to depend on "pear/Net_IDNA2" either? Maybe if neither Intl or Net_IDNA2 are present, fallback to giving checkdnsrr() the raw hostname?
Also, on a related note, I'm not sure I want my hostname validation to cause a DNS lookup altogether. What if I want to add a hostname that isn't currently resolvable (because it's a domain that will be launched later)? Or is internal to a different system than the one my code is running in? In both cases, I still want to validate that I've given a syntactically valid name that may possibly exist, but not necessarily one that truly exists. I think this entire change should be behind a new option that defaults to not running the check, for the sake of backwards compatibility. The currently failing tests on 8.0 are failing exactly because the test data for this validator is not an existing hostname, though still a syntactically valid one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
zf2 has appropriate flags:
- https://docs.zendframework.com/zend-validator/validators/hostname/#supported-options
- https://docs.zendframework.com/zend-validator/validators/hostname/#validating-different-types-of-hostnames
also symfony has polyfill for those idn stuff:
@sreichel could you make that conditional? This should not be by default for sure. |
@develart-projects i'm stuck. Is it me, or the tests? |
|
Need some advice how to fix it. |
Add an option. Default to not using it. When not using it, don't do your whole thing. The current behavior, as is, already works for all syntactically valid hostnames. It's just that it accepts names that don't exist, which may or may not be what you need. |
How should it look like? I cant change the Add a new constant to turn it on/off? |
imo you need to test both cases. Old one and your new update, so run 2 different tests for 2 different use cases. |
The
Zend_Validate_Hostname
validation was updated to add a DNS check of the A record for the domain.