創作內容

79 GP

【asp.net】原始碼,會顯示對方IP的簽名檔

作者:深海異音│2018-02-12 22:18:29│贊助:3,248│人氣:3764
我的簽名檔會顯示你的IP跟使用的瀏覽器與作業系統
並且每次重新整理都會有不一樣的角色

其實這並不是什麼特別的技術,反而應該說『本來就這樣』

瀏覽器訪透過網址訪問一個網頁時,本來就都會送一些基本資料過去,這時候對方伺服器才會決定說要回傳什麼東西
例如同樣是巴哈姆特的網址,用手機開啟就會變成手機的網頁,用電腦開就會變成電腦版的網頁,這是因為瀏覽器開啟網址的時候就已經把『我是手機』的這個訊息也一並送過去
所以圖片當然也不例外

要做出『會顯示對方IP的圖片』,只要用asp.net寫一些簡單的程式碼就行了
利用使用者請求圖片時送過來的基本資料,加工處理成圖片,最後回傳給使用者看
簡單來說,這個圖片是使用者請求訪問時才立即合成產生,而不是一張真實存在於伺服器硬碟裡面的圖片

補充:PHP、JSP、nodejs、python 等...,都可以用來撰寫網頁伺服器後台



以下是我簽名檔原始碼與簡單說明

專案類型:asp.net MVC

原始碼:https://github.com/hbl917070/asp_SignWeb/blob/master/asp_hbl917070/asp_hbl917070/Controllers/SignWebController.cs


首先要知道幾個東西
asp.net:微軟開發的伺服器語言,撰寫語言是C#。
IIS:Windows 內建的伺服器,可用來架設PHP、ASP.net 等....。
SVG:利用xml文字檔繪製出來的一種向量圖片,可用顯示於瀏覽器上面。
base64:把圖片變成純字串的一種編碼方式。

一般這種會顯示IP的簽名檔,都是用影像合成的套件來處理,但這樣會需要大量的CPU運算,所以我用SVG這種圖片,如此一來替換文字內容就不需要合成影像,只需要處理字串

不過SVG畢竟是向量圖,處理上頗麻煩,所以我是用 Adobe Illustrator做出基本樣式後,匯出SVG格式,然後把點陣圖轉成base64插入到svg裡面,最後用C#語法替換裡面的文字

簡述一下運作流程:
1、使用者的瀏覽器根據網址,向我方伺服器請求圖片
2、asp後台利用使用者送過來的基本資料,處理成SVG向量圖片(此時還只是文字檔)
3、svg向量圖片跟已經轉成base64的動物朋友圖片合併,變成有圖案的SVG
4、把合併完的最終簽名檔回傳給使用者看



雖然我很想把完整個的建置步驟都解釋一次,但這樣要連同IIS跟ASP.net MVC都教一次
那樣這篇文會變得很長很複雜,所以...
以後再說吧

其實程式碼沒什麼難度,就建置環境的步驟麻煩了些


另外,如果有誤判的情形
用這個網址就可以看到,伺服器訪問一個網頁時到底送了什麼資料過去
願意協助我修正誤判的話,可以把網頁截圖起來或直接貼文字內容給我,但記得先遮掉自己的IP


引用網址:https://home.gamer.com.tw/TrackBack.php?sn=3886626
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 33 篇留言


https://truth.bahamut.com.tw/s01/201707/c1c921d70525e40f38216bbaee7a27a4.JPG

02-12 22:21

深海異音
感謝支持02-13 00:02
更新的人格
泡咖啡

02-12 22:24

深海異音
02-13 00:02
luilo
很酷

02-12 22:28

深海異音
感謝支持02-12 23:59
狼尾
嗯……看無

02-12 22:31

深海異音
這算是伺服器領域的東西,就算是有學過伺服器的人,如果沒有一定經驗也可能看不懂這篇...02-12 23:50
unlucky
有辦法處理NAT路由器的情形嗎

02-12 23:37

深海異音
不知道耶,沒試過02-12 23:40
響湘紅
mvc感覺就好專業

02-12 23:39

深海異音
asp.net的MVC比php的MVC容易很多,光是有整合好的開發環境就省掉一半的工作了02-12 23:46
憨夫
如果能用出能自訂圖片文字及背景顏色的生成器一定很酷 ㄏㄏ

02-12 23:39

深海異音
本來是有打算要做,不過不是https就不能貼在巴哈,所以就放棄了02-12 23:41
//
好酷ㄛ

02-13 00:33

深海異音
感謝支持02-13 00:35
響湘紅
大大是學過Asp.net,還是直接Mvc就開始了

02-13 00:36

深海異音
其實我沒有學過asp,只是覺得PHP的語法很不習慣,所以才自己稍微研究了一下。
我比較習慣自己寫html跟css,不喜歡傳統的asp.net,所以直接從MVC開始用02-13 00:40
你剛剛說什麼
你真的好厲害

02-13 07:05

深海異音
感謝支持02-16 02:13
摘喵喵
安安,抱歉,我習慣開著插件逛網站,還有我是 Linux 但他跳的是 UNIX 嗚嗚 QQ
https://i.imgur.com/CmbQtDk.png

02-20 01:49

深海異音
這還真是尷尬
如果我直接判斷Headers裡面出現Linux就是Linux系統的話,可能讓很多基於Linux的系統變成誤判02-20 02:05
深海異音
那個X11好像是從unix發展出來的軟體?
(對這方面不是很熟02-20 02:09
摘喵喵
X11 只是通用的圖形系統,ㄅ用管他,User-Agent 你可以試試看用這個判斷
http://www.useragentstring.com/pages/api.php

02-20 02:13

深海異音
再試試看還會不會誤判
http://120.114.101.136/web-hbl917070/Img/SignWeb02-20 03:12
摘喵喵
Nice!除了 IP 以外其他都對ㄌ

02-20 17:49

永A的黃頭貓
雖然不是隱私權完全被公開
但是我想要阻擋這個程式讀取我的資料,感覺非常的不舒服

03-12 01:55

深海異音
讓你覺得不舒服現在這裡說聲抱歉03-12 15:44
深海異音
不過並不是這個程式讀取你的資料,正確的說法是:
瀏覽器會主動把一些無關隱私的基本資料送到要訪問的伺服器,這些資料目的是讓對方伺服器知道要回傳什麼資料才正確03-12 15:47
深海異音
例如:同樣是巴哈姆特的網址,用手機瀏覽器開就會變成手機版網頁,用電腦版瀏覽器開就會變成電腦版網頁。
就是因為瀏覽器主動跟對方伺服器表明自己是手機或電腦03-12 15:51
深海異音
手機chrome瀏覽器裡面有一個『切換為電腦版』的功能,其實就是他送一個假的資料到對方伺服器,騙對方伺服器說:我這是電腦,你要讓我看電腦版網頁03-12 15:51
深海異音
只有你看得到這張圖片,其他人看到的會是另一張圖片
所以這個簽名檔雖然知道你的一些基本資料,但實際上不知道你是誰,就算大費周章把他記錄起來也沒意義03-12 15:56
深海異音
因為這些資訊實在沒什麼隱私疑慮,所以瀏覽器沒有阻擋的機制,真的要阻擋的話只能用adblock之類的插件03-12 16:00
永A的黃頭貓
由於我的谷歌瀏覽器在去年夏季有小中毒
導致全部的插件都無法使用了,自然無法阻擋這東西

所以被讀取這些資料並不會透露我的地理位置嗎?
只要阻擋了圖片就不會被讀取資訊嗎?
身為開發者的你也無法看到那些資訊?

雖然你其他的程式文章都非常優質
但唯獨這一個是讓我討厭的
因為感覺我的網路瀏覽隱私權被侵犯。

03-12 22:05

深海異音
雖然可以從IP來插地址,但是那個有誤差,且頂多知道在哪個縣市,最重要的是:這是沒有意義的,像是我知道有一個人從加拿大看了這張圖片,這我有什麼好處= =?
我並不知道是誰03-12 22:11
深海異音
所以我最多知道,有什麼IP看了這張圖片,我沒辦法知道這個IP對應的是哪個巴友。
雖然是這麼說,不過我也沒有用資料庫記錄起來,你看過就消失了,沒有留下記錄(我懶得浪費我的CPU記錄這個意義不明的資訊03-12 22:17
深海異音
其實不用擔心這這個問題,瀏覽器訪問任何一個網址都會送這些資料過去,每一張圖片都一樣
所以瀏覽器才沒有阻擋送基本資料的功能,因為這是不具備個人隱私的資料,沒辦法拿來做任何事情03-12 22:22
永A的黃頭貓
還有剛才忘記說
我當然知道只會看到自己的分析圖片內容

使用火狐瀏覽
找不到可以阻擋那圖片的方法
添加過濾名單顯示URL網址錯誤

03-12 22:10

深海異音
阻擋圖片要看是那種阻擋方式,如果是單純的避免圖片顯示出來,那麼瀏覽器還是會送訪問請求到對方伺服器。
理論上應該有那種送訪問請求前就阻擋載入的瀏覽器插件,不確定adblock哪種03-12 22:25
深海異音
而且就像我之前回覆說明的,瀏覽器對任何一個網址任何一張圖片都會送這些資料過去,如果要阻擋的話,可能要把巴哈姆特之外的所有圖片空間都阻擋[e8]03-12 22:32
深海異音
或是另一個比較簡單的方法,用洋蔥瀏覽器,這個瀏覽器會偽造假的基本資訊來送給對方伺服器03-12 22:35
永A的黃頭貓
感謝你詳細的解說

希望這個誤會並不會讓我們彼此之間有隔閡
未來再詢問一些系統上的資訊

03-12 22:45

深海異音
只要是我能回答的我都會盡量回答03-12 22:54
更新的人格
但是我覺得這個網頁很恐怖,感覺是來到網路的實體層(另一種實體)

把IP打上去可以看見自己的_________小烏龜資訊(已登入)

03-16 19:05

深海異音
小烏龜?03-30 03:38
斬華@雞龜骨滾羹
路過,剛好看到你的簽名檔,盯著5秒才發覺怪怪的

怎麼我的public IP在別人簽名檔上xd 好厲害

06-03 03:16

深海異音
居然特地到我的小屋找[e23]06-03 03:20
斬華@雞龜骨滾羹
哈哈,很好奇怎麼阿賴伊桑會知道我的IP,

想說你程式方面好像懂很多,就好奇來小屋看看

06-03 03:27

奈津
所以巴哈簽名檔可以用HTML或之類的程式碼?

06-11 04:12

永A的黃頭貓
說真的
過了這麼久,還是不希望看到這個簽名檔,非常擾人

07-17 21:35

深海異音
好像有封鎖特定網域接受個人資訊的瀏覽器附加元件,找找看?07-17 21:37
永A的黃頭貓
我樓上留言有說明

07-17 21:40

敵會跪
深海同學你好:
同樓上奈津的問題
這個不是不能鑲嵌HTML的Code嗎
我看了一下 你是改放iframe標籤
這樣就能把東西放進去了嗎?(類似PHP的include)

08-25 00:12

深海異音
簽名檔只能夠放圖片,是巴哈用iframe來嵌入簽名檔,所以每個人的簽名檔都是iframe08-25 00:23
深海異音
雖然點進去後看起來像是html,不過實際上這是一種叫做「SVG」的向量圖片08-25 00:24
敵會跪
謝謝您詳細的解說
大概比較懂了
只是巴哈iframe包起來的HTML
他裡面的圖檔也一樣是這個https://gc.bahamut.com.tw/sign/html/h/b/hbl917070_1.html
而不是你繪製的SVG http://120.114.145.9/hbl917070/SignWeb/SignWeb

我不太懂為何會這樣子

08-25 00:48

深海異音
svg放在<img src="*">裡面時,就只是一張圖片,不能選取任何文字,也看不到原始碼。
只有在直接開啟svg的網址時,才會看起來像HTML。
這麼做的目的是基於安全性,因為svg支援嵌入js跟css,如果svg放在<img>標籤裡面也能看到原始碼,這樣就可以很輕易的破壞任何可上傳svg的網站,瀏覽器不可能這這種事情發生08-25 00:59
Àikhùn細隻龜-台文
WOW...

08-31 18:20

雞塊
給某樓 你怕洩漏ip隱私的話你還是不要打開瀏覽器好了 你連上任何一個網站都在傳送資料

11-11 23:34

只是個柳丁(´ ・ω ・`)
只會基本指令的我仰望大佬開始表演

08-24 02:12

為京阿尼祈福
那個黃頭貓被永a但是我查不到端倪

09-19 03:01

深海異音
09-19 03:02
為京阿尼祈福
哇靠你桐人ㄇ,我是說我試著查上面那個巴友想了解他究竟幹了啥但是沒翻出什麼

09-19 03:03

深海異音
這個嗎
https://forum.gamer.com.tw/B.php?bsn=60147&qt=1&q=jessek200009-19 03:19
為京阿尼祈福
84,那個我知道,他違反不少東西最後是因為多項違規永久,我試圖用你那個查發文的網站大概看了下沒甚麼不對勁

09-19 03:21

為京阿尼祈福
並且我搜尋了一個叫做tu56789的巴友但是直接表示搜無,但帳號確實沒有錯

09-19 03:23

為京阿尼祈福
喔我忘了那個目前只能搜場外紀錄,所以問題解決了

09-19 03:27

我要留言提醒:您尚未登入,請先登入再留言

79喜歡★hbl917070 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【C#、net】公開原始... 後一篇:覆寫網頁原生物件可能引發...

追蹤私訊

作品資料夾

NotLawyer喜歡TRPG的各位
周更 TRPG+安價+文字冒險 新增追劇用三分鐘懶人包 歡迎舊雨新知一起來玩~看更多我要大聲說昨天19:30


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】