Permalink
Browse files

Revert "Adjust jQuery('html') detection to only match when html start…

…s with '<' (counting space characters). Fixes #11290"

This reverts commit 239fc86.

The consensus is that this would change behavior too abruptly. We will warn in 1.8 and do this in 1.9.
  • Loading branch information...
1 parent bc9945a commit c20e031058c6210a1ed753f75af80588f076d60d @timmywil timmywil committed Jun 20, 2012
Showing with 6 additions and 3 deletions.
  1. +3 −2 src/core.js
  2. +3 −1 test/unit/core.js
View
@@ -40,8 +40,9 @@ var
trimRight = /\s+$/,
// A simple way to check for HTML strings
- // If starts-with '<'
- rhtmlString = /^\s*(<[\w\W]+>)[^>]*$/,
+ // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+ // Ignore html if within quotes "" '' or brackets/parens [] ()
+ rhtmlString = /^(?:[^#<\\]*(<[\w\W]+>)(?![^\[]*\])(?![^\(]*\))(?![^']*')(?![^"]*")[^>]*$)/,
// Match a standalone tag
rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
View
@@ -27,7 +27,7 @@ test("jQuery()", function() {
div = jQuery("<div/><hr/><code/><b/>"),
exec = false,
long = "",
- expected = 24,
+ expected = 26,
attrObj = {
click: function() { ok( exec, "Click executed." ); },
text: "test",
@@ -132,12 +132,14 @@ test("jQuery()", function() {
elem.remove();
equal( jQuery(" <div/> ").length, 1, "Make sure whitespace is trimmed." );
+ equal( jQuery(" a<div/>b ").length, 1, "Make sure whitespace and other characters are trimmed." );
for ( i = 0; i < 128; i++ ) {
long += "12345678";
}
equal( jQuery(" <div>" + long + "</div> ").length, 1, "Make sure whitespace is trimmed on long strings." );
+ equal( jQuery(" a<div>" + long + "</div>b ").length, 1, "Make sure whitespace and other characters are trimmed on long strings." );
});
test("selector state", function() {

0 comments on commit c20e031

Please sign in to comment.