扩展strip_tags以返回要剥离的标签列表

时间:2018-07-03 15:31:21

标签: php strip-tags

我们为其中一个客户提供了定制的CMS,并且正在使用strip_tags来防止他们向其模板中添加不安全的标签(例如脚本标签)。我们采用初始的$_POST值并将其另存为var,然后在var上运行strip_tags并比较两者。如果有任何更改,将引发错误。

他们最近报告说,即使不使用白名单之外的任何标签,他们也会收到错误消息。我遍历了他们要保存的内容,没有看到任何会引发错误的内容。

是否可以扩展strip_tags以返回要剥离的标签的列表?

基本上,这就是我们正在做的:

$init_input = $_POST['template_data'];
$_POST['template_data'] = strip_tags($_POST['template_data'],
  "<p><a><div><sub><sup><ul><li><h1><h2><h3><h4><h5><h6><abbr><strong>
   <address><br><hr><table><tr><b><td><tbody><thead><ol><span><i><em>
   <data-accordion><data-accordion-group><data-accordion-heading>
   <select><accordion><accordion-group><accordion-heading><img>
   <style><head><body><html><meta><option><!doctype>");

//Send an email if there are tags being stripped
if($init_input !== $_POST['template_data']){
   Logger::ErrorLog("Unapproved Markup Submitted Within CMS: $init_input");
}

0 个答案:

没有答案