abacaphiliac / php-no-html
安全地对HTML文档中的内容进行编码。
0.2.0
2016-08-12 00:42 UTC
Requires
- php: >=5.4
Requires (Dev)
- jakub-onderka/php-parallel-lint: ^0.9
- johnkary/phpunit-speedtrap: ^1.0
- phing/phing: ^2.14
- phpunit/phpunit: ^5.4|^4.8
- squizlabs/php_codesniffer: ^2.2
This package is auto-updated.
Last update: 2024-08-25 11:38:39 UTC
README
abacaphiliac/php-no-html
描述
安全地对HTML文档中的内容进行编码。
简明XSS缓解指南
来自(Paragon Initiative的博客)[https://paragonie.com/blog/2015/06/preventing-xss-vulnerabilities-in-php-everything-you-need-know]
- 如果你的框架提供了一个提供自动上下文过滤的模板引擎,请使用它。
echo htmlentities($string, ENT_QUOTES | ENT_HTML5, 'UTF-8');
是在UTF-8编码的网页上停止所有XSS攻击的安全且有效的方法,但不允许任何HTML。- 如果你的需求允许你使用Markdown而不是HTML,不要使用HTML。
- 如果你需要允许一些HTML而没有使用模板引擎(见#1),请使用HTML Purifier。
安装
composer require abacaphiliac/php-no-html
用法
以下代码是一个XSS利用示例
$userName = 'Bob"/><script>alert('XSS');</script>';
?><input name="UserName" value="<?=$value;?>" /><?php
只需在响应中转义值以防止利用
$userName = 'Bob"/><script>alert('XSS');</script>';
?><input name="UserName" value="<?=\NoHtml\NoHtml::filter($value);?>" /><?php
依赖关系
贡献
composer update && vendor/bin/phing
此库试图遵守 PSR-1, PSR-2,以及 PSR-4。如果您注意到遵守上的疏忽,请通过pull request发送补丁。