久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

Discuz! 官方交流社區

標題: Discuz! X3.4 附件無法刪除問題排查指引 [打印本頁]

作者: 老周部落    時間: 2023-1-27 14:37
標題: Discuz! X3.4 附件無法刪除問題排查指引
一. 問題背景:

在 Discuz! X3.4 Release 20221220 版本中引入了針對附件刪除接口的 CSRF 規避措施,由于手機版部分插件、模板以及部分 PC 插件自行實現了附件刪除接口調用,因此可能導致該部分插件、模板使用異常。
本排查指引將告知如何排查相關問題。

二. 模板無法刪除附件排查
1. 在 template 目錄下找到出現問題的模板文件夾,將文件夾下載到本地計算機,并做好備份。
2. 使用 EditPlus / Notepad++ 等工具對整個文件夾下的所有文件進行搜索,搜索關鍵詞為 deleteattach 。
3. 如果可以找到 deleteattach,則參考以下示例代碼對文件進行修改。
4. 修改完成后將文件夾上傳回服務器,在后臺更新緩存后再試。

例如修改之前的代碼:
  1. url:'forum.php?mod=ajax&action=deleteattach&inajax=yes&aids[]=' + obj.attr('aid'),
復制代碼

修改后:
  1. url:'forum.php?mod=ajax&action=deleteattach&inajax=yes&formhash={FORMHASH}&aids[]=' + obj.attr('aid'),
復制代碼


三. 插件無法刪除附件排查
1. 在 source/plugin 目錄下找到出現問題的插件文件夾,將文件夾下載到本地計算機,并做好備份。
2. 使用 EditPlus / Notepad++ 等工具對整個文件夾下的所有文件進行搜索,搜索關鍵詞為 deleteattach 。
3. 如果可以找到 deleteattach,則參考以下示例代碼對文件進行修改。
4. 修改完成后將文件夾上傳回服務器,在后臺更新緩存后再試。

例如修改之前的代碼:
  1. $url = 'forum.php?mod=ajax&action=deleteattach&inajax=yes&aids[]='.$aid;
復制代碼

修改后:
  1. $url = 'forum.php?mod=ajax&action=deleteattach&inajax=yes&formhash='.FORMHASH.'&aids[]='.$aid;
復制代碼


附錄:關閉接口校驗
如果實在是無法排查到上述文件,又由于各種原因無法替換插件或者聯系插件作者進行升級,可以采取以下方案強制修改代碼關閉校驗。
關閉附件刪除接口安全校驗可能導致部分惡意攻擊者在網站安插惡意代碼導致附件被刪除的風險,由此導致的安全風險由站點自行承擔。
回退老版本或選擇放棄升級新版本不會解除該接口的安全風險,反而由于其他漏洞未被正確修復給站點造成更大的安全風險。

1. 該文件位于 source/module/forum/forum_ajax.php ,請將文件下載到本地計算機,并做好備份。
2. 使用 EditPlus / Notepad++ 等工具對文件進行搜索,搜索關鍵詞為 deleteattach 。
3. 找到下方所指示的代碼并按指引進行修改。
4. 修改完成后將文件上傳回服務器,在后臺更新緩存后再試。

修改前:
  1. if(isset($_GET['aids']) && isset($_GET['formhash']) && formhash() == $_GET['formhash']) {
復制代碼

修改后:
  1. if(isset($_GET['aids'])) {
復制代碼


作者: pcyi    時間: 2023-2-1 23:56
X3.5能用嗎?




歡迎光臨 Discuz! 官方交流社區 (http://www.9999xn.com/) Powered by Discuz! W1.0