Bootstrap 版型安全性更新
- English
- 繁體中文
Bootstrap 是受到前端開發歡迎的版型架構,在 Drupal.org 也是排名前段的版型(目前安裝使用數超越了一直在第一名的 Zen)
不過就在 11 月 3 日這天,Drupal 官方發出了安全性通知,在 Drupal 7 版本的 Bootstrap 有著 XSS 的問題,建議所有使用 Bootstrap 的使用者盡快更新。
The theme does not sufficiently filter potential user-supplied data when it's passed to certain templates can which lead to a Persistent Cross Site Scripting (XSS) vulnerability.
有問題的版本是 Bootstrap 7.x-3.7 以前的版本,如果你目前使用了這些版本,請盡快更新到 Bootstrap 7.x-3.8
仔細看看 Bootstrap 所更新的程式碼,最主要就是在 common.inc 裡頭,加上了一個運用 D7 API filter_xss() 的函式,為輸入的資料做 XSS 的預防處理
/** * Filters HTML to prevent cross-site-scripting (XSS) vulnerabilities. * * Very similar to core's filter_xss(). It does, however, include the addition * of the "span", "div" and "i" elements which are commonly used in Bootstrap. * * @param string $string * The string with raw HTML in it. It will be stripped of everything that can * cause an XSS attack. * @param array $allowed_tags * An array of allowed tags. * * @return string * An XSS safe version of $string, or an empty string if $string is not * valid UTF-8. * * @see filter_xss() */ // Inline elements. 'a', 'cite', 'em', 'i', 'span', 'strong', // Block elements. 'blockquote', 'code', 'div', 'ul', 'ol', 'li', 'dl', 'dt', 'dd', ); } return filter_xss($string, $allowed_tags); }
這個例子對於開發者來說相當的重要,如果所開發的模組當中,有提供使用者輸入文字的需求,以作為前端顯示的資料時,需要仔細思考是否要加上 XSS 的過濾處理。