国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

discuz不修改代碼達到允許referer跳轉到同頂級域名的解決方案

2024-04-25 20:33:21
字體:
來源:轉載
供稿:網友

查看了discuz的drerferer方法.發現它不允許跳轉到不同子域名的跳轉.

如果想跳轉,可以修改這個方法,允許.但是這樣處理會在以后升級時,又得要修改.比較麻煩.

再想一下,discuz這樣處理,簡單的個人理解,就是假設有人想干干事.那在某個位置放置一個跳轉到其它網站上的url,然后再把這個網站仿得跟之前使用的那個"正版"網站一樣,就可以達到騙取密碼之類的目的了.所以這是比較危險.或者這個方式還有更加多的利用.所以.

做了這個防止.

現在我要說的是使用一個不變動的方式來增加跳轉功能.

在discuz的根目錄下放置一個:referer.htm文件.內容如下,主要是為了能跳過去.且在這個文件中做一個跳的域名的判斷.不符合就簡單的跳到首頁,因為?號會導致服務嘗試查詢解析,所以就不用了.還是用hash吧.

<script>

/* by qidizi: discuz 不允許跳轉到其它域名,現使用js處理,減少修改的工作量,允許跳到同頂域--不能跳到其它域,防止仿站之類的欺騙*/

(function(){

var topDomain = location.host.split('.');

topDomain = topDomain[topDomain.length-2]+'.'+topDomain[topDomain.length-1];

if (location.hash.length < 3) return location = 'http://' +location.host + '/';

var referer = unescape(location.hash.replace(/#/g, '').replace('%_', '%'));

if (new RegExp('^http//://////([^///]+//.)?' +topDomain+ '///', 'i').test(referer)) {//同top domain

location = referer;

} else {

location = 'http://' +location.host + '/';

}

})();

</script>

使用方式如下.使用js生成的一個退出鏈接,點擊退出成功再會退出當前的這個頁面.這樣這個目的就達到了.

+ ' <a href="http://bbs.qidizi.net/member.php?mod=logging&action=logout&formhash=' +json['formHash']+ '&referer=/referer.htm' +escape('#') +escape(location).replace(/%/g, '%_')+ '" target="_self">退出</a>'

ok,經過測試.此方案工作正常

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 互助| 通榆县| 富川| 青川县| 丘北县| 武宣县| 临漳县| 大宁县| 涪陵区| 镶黄旗| 交城县| 桑植县| 阳新县| 台湾省| 玉屏| 青铜峡市| 舒城县| 万山特区| 阜阳市| 鄂伦春自治旗| 平潭县| 西和县| 凤山市| 虎林市| 曲麻莱县| 沙雅县| 靖安县| 久治县| 宜都市| 长岛县| 宁德市| 交城县| 遂溪县| 定安县| 长兴县| 子洲县| 定远县| 巍山| 内丘县| 井冈山市| 古交市|