如何编写一个模式以与PHP的preg_match函数一起使用来检查包含脚本标记的字符串?使用preg_match查找字符串是否包含脚本标记
2
1
Don't use regular expressions for processing xml/html.你还是使用DOM classes of PHP,应该是远远超过任何正则表达式更可靠,你会发现:
$document = new DOMDocument();
$document->loadHtml($html);
$xpath = new DOMXPath($document);
if ($xpath->query('//script')->length > 0) {
// document contains script tags
}
+0
这个问题只是说“字符串”,这并不一定意味着有一个文档结构... – conny 2009-09-21 12:26:47
3
出于安全原因?基本上,你不能。这里有一些事情我了解到在过去这样做:
<a href="javascript:something">...</a>
<p onmouseover="something">
- 有一些URL方案等效于在不同的浏览器
javascript:
,像jscript:
,mocha:
和livescript:
的。大多数都没有记录。 - 旧版本的Netscape处理某些字节(0x94和0x95,我认为?)等同于
<>
。希望在现代浏览器中没有这样的东西。 - VBScript。
MySpace试图做到这一点,其结果是“Samy是我的英雄”蠕虫在其他许多安全灾难中将服务中断了一天左右。
所以,如果你想接受HTML的有限子集,仅包括文本和格式,你必须白名单,不黑名单。你必须将标签,属性列入白名单,并且如果你想允许链接,URL方案。这里有一些现有的库,但我不知道在PHP中推荐哪些库。
相关问题
- 1. 查找字符串是否包含字
- 2. jQuery:在包含文本的字符串中查找标记
- 3. 查找字符串是否包含字符串
- 4. bat文件脚本来检查字符串是否包含其他字符串
- 5. 如何检查字符串是否包含appway脚本中的子字符串?
- 6. 如何查找文本是否包含url字符串
- 7. C++ 11 - Unicode字符串 - 查找是否包含非ASCII字符
- 8. 查找日期是否包含使用preg_match的有效格式
- 9. 检查字符串是否包含字(不是子字符串!)
- 10. 检查字符串是否包含除
- 11. 检查是否字符串包含“HTTP://”
- 12. 检查Enum是否包含字符串?
- 13. 检查NSMutableArray是否包含字符串
- 14. 检查行是否包含字符串
- 15. 检查是否WCHAR包含字符串
- 16. MongoDB - 查找给定字符串中是否包含字段值
- 17. 试图找到一个字符串是否包含字符串
- 18. 使用preg_match查找URL中的单词(或字符串不包含空格)
- 19. 使用JavaScript检查字符串是否包含日文字符(包括汉字)
- 20. 当字符串包含标点符号时检查字符串是否相等
- 21. preg_match如果字符串包含+或 -
- 22. React-Native:检查字符串是否包含字符串
- 23. Applescript:检查一个字符串是否包含空字符串?
- 24. 检查字符串是否不包含其他字符串
- 25. 检查字符串是否包含子字符串
- 26. 查找字符串是否包含子字符串的函数方法?
- 27. 如何查找字符串是否包含任何字符串列表项?
- 28. java查找字符串是否包含2个其他字符串
- 29. 查找searBar.text是否包含整数字符串?
- 30. 查找字符串是否包含值,然后提取
通过'脚本标记'你的意思是像/i”,$ string); – 2009-09-21 12:29:56
或者只是'htmlspecialchars'。 – Gumbo 2009-09-21 12:37:06