|
|
|
@ -396,24 +396,26 @@ class Security |
|
|
|
|
/** |
|
|
|
|
* |
|
|
|
|
* Filter content |
|
|
|
|
* @param string content to be filter |
|
|
|
|
* @param string $text to be filter |
|
|
|
|
* @return string |
|
|
|
|
*/ |
|
|
|
|
static function filter_terms($text) |
|
|
|
|
public static function filter_terms($text) |
|
|
|
|
{ |
|
|
|
|
static $bad_terms = array(); |
|
|
|
|
|
|
|
|
|
if (empty($bad_terms)) { |
|
|
|
|
$list = api_get_setting('filter_terms'); |
|
|
|
|
$list = explode("\n", $list); |
|
|
|
|
$list = array_filter($list); |
|
|
|
|
if (!empty($list)) { |
|
|
|
|
foreach ($list as $term) { |
|
|
|
|
$term = str_replace(array("\r\n", "\r", "\n", "\t"), '', $term); |
|
|
|
|
$html_entities_value = api_htmlentities($term, ENT_QUOTES, api_get_system_encoding()); |
|
|
|
|
$bad_terms[] = $term; |
|
|
|
|
if ($term != $html_entities_value) { |
|
|
|
|
$bad_terms[] = $html_entities_value; |
|
|
|
|
$list = explode("\n", $list); |
|
|
|
|
$list = array_filter($list); |
|
|
|
|
if (!empty($list)) { |
|
|
|
|
foreach ($list as $term) { |
|
|
|
|
$term = str_replace(array("\r\n", "\r", "\n", "\t"), '', $term); |
|
|
|
|
$html_entities_value = api_htmlentities($term, ENT_QUOTES, api_get_system_encoding()); |
|
|
|
|
$bad_terms[] = $term; |
|
|
|
|
if ($term != $html_entities_value) { |
|
|
|
|
$bad_terms[] = $html_entities_value; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
$bad_terms = array_filter($bad_terms); |
|
|
|
@ -421,30 +423,12 @@ class Security |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$replace = '***'; |
|
|
|
|
|
|
|
|
|
if (!empty($bad_terms)) { |
|
|
|
|
//Fast way |
|
|
|
|
// Fast way |
|
|
|
|
$new_text = str_ireplace($bad_terms, $replace, $text, $count); |
|
|
|
|
|
|
|
|
|
//We need statistics |
|
|
|
|
/* |
|
|
|
|
if (strlen($new_text) != strlen($text)) { |
|
|
|
|
$table = Database::get_main_table(TABLE_STATISTIC_TRACK_FILTERED_TERMS); |
|
|
|
|
$attributes = array(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$attributes['user_id'] = |
|
|
|
|
$attributes['course_id'] = |
|
|
|
|
$attributes['session_id'] = |
|
|
|
|
$attributes['tool_id'] = |
|
|
|
|
$attributes['term'] = |
|
|
|
|
$attributes['created_at'] = api_get_utc_datetime(); |
|
|
|
|
$sql = Database::insert($table, $attributes); |
|
|
|
|
} |
|
|
|
|
*/ |
|
|
|
|
$text = $new_text; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return $text; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|