日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
千萬(wàn)別在代碼中使用“用戶”這個(gè)詞

一個(gè)項(xiàng)目你搞了六個(gè)月,突然你意識(shí)到一開始做出的一個(gè)小小的簡(jiǎn)單假設(shè)完全錯(cuò)誤。而現(xiàn)在你需要修復(fù)問(wèn)題,同時(shí)保持現(xiàn)有系統(tǒng)正常運(yùn)行;不用說(shuō),耗費(fèi)的精力比當(dāng)初一開始就弄好要多得多。

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的公安網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

今天我想告訴諸位一個(gè)常見的錯(cuò)誤,僅僅一個(gè)詞會(huì)給你帶來(lái)無(wú)盡的麻煩。我指的是“用戶”這個(gè)詞。

這個(gè)詞存在兩個(gè)基本問(wèn)題:

1. “用戶”幾乎從來(lái)無(wú)法很好地描述你的需求。

2. “用戶”助長(zhǎng)了一個(gè)基本的安全設(shè)計(jì)缺陷。

“用戶”這個(gè)概念含糊不清,建議你使用更準(zhǔn)確的術(shù)語(yǔ)。

你沒(méi)有用戶

首先,沒(méi)有哪個(gè)軟件系統(tǒng)實(shí)際上有“用戶”。乍一看,“用戶”是很到位的描述,但一旦你更認(rèn)真地分析,就會(huì)認(rèn)識(shí)到你的業(yè)務(wù)邏輯實(shí)際上更復(fù)雜。

我們將考慮三個(gè)例子,先說(shuō)一種極端情況。

航空公司預(yù)訂系統(tǒng)沒(méi)有“用戶”

我曾為一套航空公司預(yù)訂系統(tǒng)開發(fā)過(guò)訪問(wèn)控制邏輯。以下是一小部分需求:

  • 如果乘客有預(yù)訂號(hào)(PNR),可以通過(guò)網(wǎng)站查看預(yù)訂。
  • 如果購(gòu)票者有信用卡號(hào)碼的***4位數(shù)字,可以通過(guò)網(wǎng)站修改預(yù)訂。
  • 旅行代理人可以查看和修改通過(guò)其旅行社完成的預(yù)訂。
  • 有了乘客的身份信息,航空登記代理人可以根據(jù)其角色和機(jī)場(chǎng)來(lái)查看和修改預(yù)訂。

不一而足。與人員對(duì)應(yīng)的幾個(gè)基本概念是“乘客”、“代理人”(網(wǎng)站也可能是代理人)和“購(gòu)票者”。“用戶”這個(gè)概念根本就沒(méi)用,我們根本沒(méi)有用這個(gè)詞――比如在許多請(qǐng)求中,我們要加入乘客和代理人的登錄信息(credential)。

Unix沒(méi)有“用戶”

不妨看一個(gè)全然不同的情況。Unix(如今名為POSIX)有用戶:用戶可以登錄并運(yùn)行代碼。這似乎很好,是不是?但不妨仔細(xì)看一下。

如果我們果真經(jīng)歷了所謂的用戶活動(dòng),我們有:

  • 通過(guò)終端或圖形用戶界面登錄的人員。
  • 還有以“用戶”的身份來(lái)運(yùn)行的系統(tǒng)服務(wù)(比如郵件或Web服務(wù)器),比如nginx可能以httpd用戶的身份來(lái)運(yùn)行。
  • 在服務(wù)器上,常常有多個(gè)人員共享的管理帳戶,這些人使用該“用戶”進(jìn)行SSH連接(比如,ubuntu是運(yùn)行Ubuntu的AWS虛擬機(jī)上的默認(rèn)SSH帳戶)。
  • root,它與上述任何一個(gè)都不完全相同。

這是四個(gè)截然不同的概念,但在POSIX中它們都叫“用戶”。正如我們稍后會(huì)看到的,將所有這些概念籠統(tǒng)稱之為“用戶”這個(gè)模糊概念可能會(huì)導(dǎo)致許多安全問(wèn)題。

但就實(shí)際操作上,我們甚至沒(méi)有辦法在POSIX用戶模式的邊界內(nèi)說(shuō)“只有Alice和Bob可以登錄到共享的管理員帳戶?!?/p>

SaaS提供商沒(méi)有“用戶”

Jeremy Green最近在推文中提到了軟件即服務(wù)(SaaS)中的用戶模式,這促使我寫下了這篇文章。他的基本觀點(diǎn)是,SaaS服務(wù)幾乎總是有:

  1.  一家企業(yè)組織中花錢購(gòu)買服務(wù)的人。
  2. 該企業(yè)組織中一個(gè)或多個(gè)實(shí)際使用該服務(wù)的人。

如果你一開始將這些人合并成一個(gè)“用戶”,就會(huì)陷入痛苦的深淵。你無(wú)法為團(tuán)隊(duì)建模,也無(wú)法同時(shí)針對(duì)多個(gè)人為支付建模,現(xiàn)在你需要改造系統(tǒng)。

但這只是表明一個(gè)更廣泛?jiǎn)栴}的一個(gè)情況:“用戶”這個(gè)概念太模糊了。如果你一開始懷疑“用戶”這個(gè)詞,極有可能最終意識(shí)到你實(shí)際上至少有兩個(gè)概念:團(tuán)隊(duì)(花錢支付和擁有所有權(quán)的單位)和團(tuán)隊(duì)成員(實(shí)際使用服務(wù)的人) 。

“用戶”是安全問(wèn)題

“用戶”這個(gè)詞不僅僅對(duì)業(yè)務(wù)邏輯來(lái)說(shuō)是個(gè)問(wèn)題:它還有嚴(yán)重的安全后果?!坝脩簟边@個(gè)詞太含糊了,將兩個(gè)全然不同的概念混為一談:

  • 人員。
  • 人員在軟件中的表示。

想明白為什么這是個(gè)問(wèn)題,假設(shè)你訪問(wèn)了一個(gè)惡意網(wǎng)站,該網(wǎng)站托管了一個(gè)利用瀏覽器緩沖區(qū)溢出的圖片。遠(yuǎn)程站點(diǎn)現(xiàn)在控制你的瀏覽器,開始將你的所有文件上傳到其服務(wù)器。為什么它能這么做?

因?yàn)槟愕臑g覽器作為你的操作系統(tǒng)這個(gè)“用戶”來(lái)運(yùn)行,該“用戶”被認(rèn)為與你這個(gè)人一樣,其實(shí)你是一種全然不同的“用戶”。你這個(gè)用戶不想上傳那些文件。操作系統(tǒng)帳戶(它也是用戶)可以上傳那些文件,又由于你的瀏覽器在你的用戶下運(yùn)行,因此它的所有操作被認(rèn)為是你想要執(zhí)行的操作。

這就是所謂的困惑的代理問(wèn)題(Confused Deputy Problem)。如果你使用“用戶”這個(gè)詞來(lái)描述兩個(gè)根本不同的東西是一回事,這個(gè)問(wèn)題極有可能成為你設(shè)計(jì)的一部分。

預(yù)先設(shè)計(jì)的重要性

想成為高效的程序員,關(guān)鍵是花更少的精力完成同樣的工作。使用“用戶”這樣的含糊術(shù)語(yǔ)為軟件建模需要以后花費(fèi)大量的時(shí)間和精力來(lái)修復(fù)。立即開始編寫代碼似乎很高效,但事實(shí)恰恰相反。

下次你開始搞新的軟件項(xiàng)目時(shí),花幾個(gè)小時(shí)預(yù)先確定術(shù)語(yǔ)和概念:你仍然無(wú)法做到完全正確,但結(jié)果會(huì)好得多。將來(lái)你會(huì)慶幸自己避免了種種無(wú)為的勞動(dòng)。


分享標(biāo)題:千萬(wàn)別在代碼中使用“用戶”這個(gè)詞
分享地址:http://www.dlmjj.cn/article/djcesjj.html