防止使用 Bash 解析待解析的 HTML 元素
我有一個 LAMP(CentOS)“共享”伺服器環境,我無法完全控制 Apache 網路伺服器,但只能通過
.htaccess
文件部分控制它;我可以 SSH 那個環境並在我的使用者分區中使用 Bash。
在那種環境下,我有一個 MediaWiki 網站。
MediaWiki 核心包含一些我想禁用但不允許這樣做的選項(例如,不能禁用編輯摘要框或頁腳鍊接)。
由於我不是 PHP 程序員,也不想更改龐大的核心 PHP,我想以某種方式防止這些功能被解析到客戶端。
- 不能通過 CSS 和/或 JavaScript 禁用這些功能,因為使用者可以禁用 CSS 和/或 JS,然後使用這些功能
- 我想防止在 PHP 文件仍然在類似情況下執行時解析這些功能:在執行任何 PHP 行或常式之前呼叫某些 PHP 函式(用於處理標記);
然後,根據某些標準(可能是 CSS 類),該函式會過濾掉該行或常式,使其不被執行,因此將不會被解析的 HTML 結構,
但是 PHP 7.3.11 沒有這樣的一個函式。
是否有任何調整可以防止使用 Bash 解析要解析的 HTML 元素?
我不知道您為什麼要為此使用 bash 或任何其他類型的 shell 腳本。這不是它的用途。就此而言,即使您使用了為 HTML 操作而設計的東西,在 MediaWiki 和使用者瀏覽器之間添加一個額外的轉換層來避免學習少量 PHP 似乎也是一個壞主意。
作為替代解決方案,我建議配置 MediaWiki 以直接生成您想要的 HTML。除了大量的配置變數,MediaWiki 還允許提供可程式的鉤子來修改其操作的許多部分。例如,SkinTemplateOutputPageBeforeExec掛鉤可用於修改進入 HTML 模板的大部分輸入,包括頁腳鍊接。
如果掛鉤提供的靈活性不足以滿足您的需求,另一種選擇是製作您自己的 MediaWiki皮膚。這將讓您完全替換 HTML 模板並以您想要的任何方式對其進行自定義。有一個製作新皮膚的教程,你可能想看看,但基本上最簡單的方法是從複製現有皮膚開始(例如教程附帶的範例皮膚,或預設的內置矢量皮膚)並對其進行調整,直到它按照您想要的方式工作。