如何从创建 URL 的表单输入中删除 HTML(或其他)
How to strip HTML (or other) from form input that creates URL
所以我有一个简单的表单,用于创建 URL - 然后在提交操作后将用户带到 URL - 这是代码:
<form method="get" class="searchform" action="/srch">
<label for="s" class="assistive-text"><?php _e('Search'); ?>:</label>
<input type="text" class="field" name="fwp_general_search" id="s" title="Search Field" placeholder="Enter Terms Here..." />
<input type="submit" class="submit" id="searchsubmit" title="Search Button" value="Search" />
</form>
效果很好,按预期将用户带到 URL。
但是,为了防止某些漏洞,我希望能够去除任何 HTML 或其他可以插入到该文本字段中的标记。如何从该输入中删除标签?
取决于您将如何处理后端的输入。如果您将它与数据库一起使用,您应该研究准备好的语句以防止 SQL 注入,如果您还向用户显示输入,您将需要研究使用函数转义来保护输出比如htmlspecialchars()
,strip_tags()
之类的
PHP 也有帮助 url 验证的函数,例如 https://secure.php.net/manual/en/filter.filters.validate.php
所以我有一个简单的表单,用于创建 URL - 然后在提交操作后将用户带到 URL - 这是代码:
<form method="get" class="searchform" action="/srch">
<label for="s" class="assistive-text"><?php _e('Search'); ?>:</label>
<input type="text" class="field" name="fwp_general_search" id="s" title="Search Field" placeholder="Enter Terms Here..." />
<input type="submit" class="submit" id="searchsubmit" title="Search Button" value="Search" />
</form>
效果很好,按预期将用户带到 URL。
但是,为了防止某些漏洞,我希望能够去除任何 HTML 或其他可以插入到该文本字段中的标记。如何从该输入中删除标签?
取决于您将如何处理后端的输入。如果您将它与数据库一起使用,您应该研究准备好的语句以防止 SQL 注入,如果您还向用户显示输入,您将需要研究使用函数转义来保护输出比如htmlspecialchars()
,strip_tags()
之类的
PHP 也有帮助 url 验证的函数,例如 https://secure.php.net/manual/en/filter.filters.validate.php