題:
在代碼中留下復活節彩蛋的後果?
zundi
2016-06-09 09:22:27 UTC
view on stackexchange narkive permalink

我是一名軟件開發人員(在一家沒有政府或軍事客戶的小公司中),只是出於樂趣,在代碼中留下了復活節彩蛋。最終客戶看到它的唯一方法是他們是否按下同一按鈕25次,這不太可能發生。復活節彩蛋本身只包含一張自己的小照片和“ 您所有基地都屬於我們

的變體。如果發現,可能的後果是,是受僱還是受僱?

評論不作進一步討論;此對話已[移至聊天](http://chat.stackexchange.com/rooms/40964/discussion-on-question-by-zundi-consequences-for-leaving-an-easter-egg-in-code) 。
十 答案:
Justin Cave
2016-06-09 10:42:00 UTC
view on stackexchange narkive permalink

如果您不確定自己的團隊,經理和公司會為此而咯咯笑,那就不要添加複活節彩蛋。

我已經看到一些案例,其中包括未經授權的複活節彩蛋。問題是,按照定義,復活節彩蛋幾乎沒有經過同行審查,並且所做的工作沒有得到適當的記錄。如果開發人員可以不經任何檢查就潛入顯示自己照片的代碼,那麼他們擔心的是,他們很容易插入後門,從而使他們將來對系統造成危害。公司對待它就像對待在生產中發現任何未經授權的代碼一樣(將來可能會使那些開發人員的參考檢查變得相當麻煩)。

現在,您是否特別有可能如果包含復活節彩蛋,會被解僱嗎?這可能取決於軟件的性質-生產醫療或財務軟件的公司可能會比發行遊戲的公司少那麼開心。但是,即使在特定行業內,也會有更多的直系公司和更多的隨心所欲的公司。您可能會被告知將其關閉。管理層可能會失去對您的專業素養的信心,或者您的團隊會認為自己是團隊中的一個自我強化的混蛋。每個人都有可能覺得這很有趣。

考慮到巨大的潛在下行空間和最小上行空間,冒險是沒有道理的。要么獲得正式批准添加它(大概意味著至少要選擇一個更具包容性的圖片),要么不包含它。

我正在思考的要點上的詳盡闡述。 +1
全面合理的答案。我完全同意您的評估。復活節彩蛋是現代軟件開發中的遺物。
-1
而且由於復活節彩蛋代碼沒有經過正確的審查/測試,因此可能包含漏洞-增加了應用程序的攻擊面。
應當指出,現代遊戲中的複活節彩蛋可能已經過審查,測試和批准。
我要補充一點,這些天使復活節彩蛋皺眉的最大原因是,所有軟件都與雲計算的爆炸性聯繫在一起,以至於任何未經授權或未經測試的代碼都可能造成巨大的安全風險。即使不存在安全風險,某些地方的某些過程也可能會意外地插入該代碼,然後中斷處理。
-1
更不用說,我已經與質量檢查團隊合作,幾乎可以肯定,他們要單擊25次按鈕才能查看是否有任何問題。他們會告訴我通過將要記錄下來的缺陷來修復它。
即使在大多數遊戲工作室中,未經授權的複活節彩蛋也可能是可燃的(如果復活節彩蛋以不利的方式發布了新聞,該公司將很樂意將您丟下公共汽車)。
在這個對話線程上,編寫復活節彩蛋代碼沒有問題-只是不要將其提交給源代碼管理。
不論它在技術上是否可燃,它都對貴公司說***這個傢伙非常專業,而且承擔巨大責任***。可能會吸引潛在的未來員工。想像一下,坐在面試官上五年來的出色工作,面試官說:“那麼,SynergyLeverage的Bob告訴我您所做的複活節彩蛋-想通過您的想法與我交談嗎?”。你會想要死的。
我認為這是多麼棘手的一個很好的例子是從Python中“導入此”,它印刷了《 Python的禪宗》,這是一本關於Python心態的簡短詩。在第11個小時,通過禁用保護代碼的提交鉤子,將其提交並重新啟用它們,從而“吞噬”了代碼。他們放棄它的唯一原因:做到這一點的人是Python的創建者Guido von Rossum。顧名思義,這將被視為“獲得管理層批准”。
我似乎還記得一個複活節彩蛋是在一款受歡迎的視頻遊戲中發布的(我希望我能記得哪一個),發布後大約有一張帶有開發人員裸露後端照片的照片。 ESRB實際上是追溯地更改了遊戲的等級,無疑使公司損失了很多錢,包括罰款和銷售損失。
@WoodrowBarlow認為您的意思是這樣的:http://www.polygon.com/2015/4/14/8382089/bungie-butt-microsoft-halo
@HaykoKoryun是!團隊確信沒人會偶然發現偶然發現的複活節彩蛋,這是一個很好的例子,最終導致重大問題。
user42272
2016-06-09 19:23:06 UTC
view on stackexchange narkive permalink

復活節彩蛋是公司的一項舉措,而不是叛逆的倡議。之所以對公司而言,很難做到這一點的原因是,因為如此多的員工對其進行叛逆,認為這是停止鍛煉的神奇時刻正常水平的謹慎和判斷。永遠不要像往常那樣在公司裡亂搞事情。我的意思是,有例外,但這顯然不是其中的一個。

復活節彩蛋:

  • 不應該使用戶感到困惑。您確實如此。
  • 不應該傷害用戶。
  • 不應該使用戶對用戶是否受到傷害感到困惑。我對此壓力不足,一半的用戶會認為這是一種病毒。
  • 應該與公司的聲音保持一致。幾乎可以肯定不是。
  • 應該有利益相關者的支持。你的沒有。客戶服務將花費一些時間將其追溯到您身上,當他們這樣做時,他們會感到惱火。
  • 應以某種有意義的方式推動公司文化的發展。愚人節那天的笑話說:“不怕古怪,但您可以相信我們的數據”。您的類別不屬於您。
  • 不應該保密。就像開發的任何部分都不應該是秘密的一樣。這不是唯一的例外,因為您將其稱為複活節彩蛋。
  • 應遵循正常的審核過程並由質量代碼組成。您的不是。
  • 應該遵循所有事物的常規安全性審查。攻擊者會(1)尋找這些東西,然後(2)立即意識到這是整個網頁中審查最差的代碼段?成為“復活節彩蛋”不是一種安全形式。

因此,現在您需要對其進行修復。對我來說,這聽起來不算是嚴重的情況,但是如果您想盡辦法掩蓋自己的屁股,您可能會遇到更多麻煩,而不是正視問題。就像其他人一樣處理此問題,您看起來可能會好很多。

這可能意味著在需要進行更多損害控制的情況下(可能不需要)上報給您的老闆,或者可能在刪除有問題的代碼時只是進行實際的代碼審查,就像在刪除時總是得到代碼審查一樣任何有問題的代碼。

我真的很喜歡我認為,如果OP到老闆那裡說:“您知道,我犯了一個錯誤。我認為這很有趣,但我不再這麼認為。我想刪除此代碼。” OP將保留面子,消除將來可能出現的任何尷尬,甚至可能會贏得一點尊重/信任。
“有一半的用戶會認為這是一種病毒。”這是最大的問題。 **您的複活節彩蛋正是電影中病毒的樣子!**(原始的《侏羅紀公園》是一個令人難忘的例子)。
“復活節彩蛋是公司的主動行動,而不是叛逆行動。”除了[SimCopter](https://en.wikipedia.org/wiki/SimCopter#Controversy)中的那個。 (免責聲明:是的,這個人確實失業了,但是複活節彩蛋仍然存在)
換句話說,復活節彩蛋是團隊合作的成果。
@fredsbend我想想我說的不止於此:P
Adam Davis
2016-06-09 22:06:20 UTC
view on stackexchange narkive permalink

我是一個蹣跚學步的孩子,只是出於樂趣,在房子上亂塗亂畫。父母看到它的唯一方法是,如果他們在櫥櫃裡的杯子後面看,那是不可能發生的。復活節彩蛋本身只包含一個小小的我的名字,還有一個“您所有的杯子都屬於我們”的變體。

心態基本相同。您是在未經許可的情況下向您不擁有的對象添加塗鴉,並且您認為不會被抓到,因此您應該沒事吧?

問題是您沒有許可,並且該產品代表公司。當複活節彩蛋顯露出來,而與是否存在無關緊要時,則會對您造成嚴重影響。僅僅因為您現在願意為此而被解僱,並不意味著如果您在一家有安全意識的公司工作的3年內曝光,便會感到欣慰。

不允許通過您的數字塗鴉將該產品發布給任何客戶。將其從代碼庫中刪除,希望沒人能注意到它。

“數字塗鴉。”愛那個表情。
關於破壞他人財產,我喜歡塗鴉類比。令人遺憾的是,當人們認為塗鴉有時被警察忽略(儘管是刑事犯罪)時,這種類比下降了[因為肇事者是著名的](https://en.wikipedia.org/wiki/Banksy)。如果他們首先成名,也許OP可以擺脫它。
不確定塗鴉類比的意義...幼兒並沒有真正的“心理”,即使如此,“我的父母也會覺得這很有趣,或者我還是個孩子,所以他們讓我擺脫了這些東西(程序員是怪異和做怪異的事情)”將是相當現實的心態。確實,類推只是指出,當您只是自己時,許可關係不大。
@djechlin也許我應該使用“思想過程”一詞,而不是心態(這是很好定義的,但是也許您的含義與詞典不符)。無論如何,這種類比建議表明,任何認為自己的塗鴉對他人的產品都可以的人都缺乏同理心和責任心-幼兒要等到大一點才學到的兩件事。從本質上講,這是一種自私,幼稚的行為,在個人職業中沒有地位。如果獲得許可,請繼續,但是,如果您秘密進行此操作,那麼無論您提出什麼理由,都比破壞者更好。
Marion
2016-06-09 10:03:42 UTC
view on stackexchange narkive permalink

您擔心它被發現嗎?您為他們留下了一個清晰的方法,讓他們通過在代碼中留下自己的頭像來追踪復活節彩蛋的來源,更不用說技術上的指紋了。

謹慎地刪除復活節彩蛋。 即使您認為它不太可能被發現,也無法保證不會被發現。

但是,您詢問了後果,所以這是我的想法。 / strong>

  • 具體來說,您的主管可能會質疑您的專業水平,因為當您收到薪水時,您顯然已經不工作了(正如史蒂夫·傑索普的評論中提到的那樣,證據現在存在於源代碼控制中)在寫復活節彩蛋時工作。這會影響他們對您的印象,從而使您可以在參考書目中關注您將來的工作。
  • 您的同事也可能對複活節彩蛋持消極態度,尤其是在某些項目交付或資源落後並且他們

另一方面,了解我的同事們,您一定會從更輕鬆的同事那裡獲得笑聲。工人的複活節彩蛋。只是不要期望管理層覺得它很幽默。

您好@Marion,感謝您的回答。我並不害怕被發現,但是我告訴了我兄弟,他問是否可能會有後果。所以這讓我開始思考。
-1
“您留下了清晰的方法,讓他們通過留下自己的照片來追踪復活節彩蛋的來源”-所以您要說的是,將其更改為旁邊有誰坐在附近的人的照片嗎?更嚴重的是,源代碼控制將建立作者身份。
我不喜歡這樣的想法,即在工作中做一些有創意的事情會“愚蠢”,並且會浪費企業的錢。軟件開發人員不是每分鐘具有一定吞吐量的代碼生成機器。放鬆和“玩耍”是我工作日的重要組成部分,可以使我保持動力,創造力和靈活的思維。 -如果您的經理當時對您的表現感到滿意,那麼您就正確地使用了它。 -將這種可循環播放的代碼帶入生產中當然是一個問題。
有時,在一個人的職業生涯中,必須採取一項不確定的行動。
@SteveJessop:在源代碼控制這一主題上,這實際上是公司由於復活節彩蛋可能引起的嚴重額外責任。通過將可能源自未經適當許可的第三方版權的某些內容存儲在源代碼控制存儲庫中,將污染“整個源歷史”的版權狀態。這可能會影響將項目許可/銷售給第三方或將來嘗試將其開源。刪除污點是一項昂貴的歷史編輯操作,該操作會通過更改哈希值來破壞所有外部修訂參考。
我在工作時放輕鬆或一般吃復活節彩蛋都沒有問題。人們需要停機,否則就會精疲力盡。但是,正如我的一個朋友雄辯地說的那樣,現在您留下了您沒有工作的證明。
Dmitry Grigoryev
2016-06-09 17:04:47 UTC
view on stackexchange narkive permalink

25年前,復活節彩蛋很酷。他們不再酷了。不要這樣做。

安裝未經授權的複活節彩蛋會使您面臨各種不愉快的問題:

  • 您為什麼要在工作中處理個人物品?您是否花了那麼多錢就付給您了,不是嗎?
  • 您為什麼通過在產品中引入未經審查和未經測試的代碼來違反編碼規則和質量政策?如果該代碼有錯誤,那麼您打算如何計劃證明您不是故意這樣做的?
  • 如果您的複活節彩蛋看起來像是安全專家的後門,您將如何證明事實並非如此?您準備好為獨立的安全評估付費嗎?

IANAL,但是您的行為的許多方面很容易構成犯罪,甚至更糟。

“10年前”?更像** 25 **年。現在讓我年輕的朋克們得到我的草坪吧。
@CarlWitthoft爺爺,一切都做完了。我可以去外面玩嗎?
復活節彩蛋在軟件中的使用時間比25年前要長得多。 25年前是90年代,而一些最好的複活節彩蛋出現在70年代和80年代。
-1
是的,他們_完全_不再酷了! Lameo的!
有趣的事實:Ada Lovelace編寫了第一個複活節彩蛋。有趣的事實:事實是事實,因為它出現在印刷品中,因此被認為是真實的
@DmitryGrigoryev提醒我[Windows 3.1復活節彩蛋](http://www.eeggs.com/items/469.html):團隊中所有人員的列表。
Eric Lippert
2016-06-11 22:27:30 UTC
view on stackexchange narkive permalink

如果您在Microsoft工作,一旦被發現將被解僱。

如果您在向任何政府或任何政府承包商提供軟件的公司工作,則您的公司可能會失去合同現在,永遠禁止與該客戶進行進一步的交易。他們不好笑。他們不是很可愛。

如果您想擁有一個有趣的用戶界面元素來給團隊成員以榮譽,請編寫網頁。不要在用戶可訪問的代碼中放置未經證明,未經測試,未經驗證的功能。客戶將相當合理地詢問其他哪些未公開的秘密功能,這些秘密功能會顛覆您公司員工已添加到其軟件中的安全措施。

“不要在用戶可訪問的代碼中放置未經證明,未經測試,未經驗證的功能。” -我認為那將佔全部代碼的一半以上:)
gnasher729
2016-06-09 12:49:14 UTC
view on stackexchange narkive permalink

最好的情況是,你笑了起來。最壞的情況是,直到人力資源部給您提交論文之前,您都會笑。這是您的決定,您對笑聲的重視程度。

離開後的後果:最壞的情況是,您的老公司起訴您。如果在美國發生這種情況,您可能會出於任何原因被起訴。被起訴的最好結果就是您支付法律費用,這並不便宜。再次,這取決於您對笑聲的重視程度。

但是要以積極的態度看待它。也許貴公司的傢伙有幽默感。因此,人力資源部在向您提供文件時會發出笑聲,而公司律師在起訴您時會發笑。這當然是值得的。

我忘了提到這是一個非常非常糟糕的主意嗎?如果您要在公司的軟件中添加複活節彩蛋,請推薦給產品經理。

“您可能因任何原因而被起訴”-因此,要么從不採取任何行動(因為您可能會因此而被起訴),要么完全忽略該問題(因為無論如何您都可以因吃早餐而被起訴,不妨實施一項復活節彩蛋)。僅在您實際評估被起訴的風險時,有關被起訴風險的分析才有用。
抱歉,但是被起訴並不一定*意味著您最終不得不支付法律費用。如果法官裁定雇主的訴訟瑣碎或瑣碎,她可能會迫使他們支付您的費用。
“如果在美國發生這種情況,您可能會以任何理由被起訴”-儘管在許多歐洲國家,人們普遍相信,而且我相信世界上幾乎所有地方,您都可以起訴任何人,無論是否會起訴雖然被法官駁回是另一回事,但是“起訴自由”並非針對美國
關於此答案的所有內容都不是特定於主題的。問題可能只是“幫助,我在工作中引入了軟件錯誤”。
John U
2016-06-09 16:26:48 UTC
view on stackexchange narkive permalink

這裡有三個主要因素:

  • 您的雇主的普遍文化(他們是酷的&時髦還是嚴肅而嚴肅的人?)
  • 客戶的態度/影響-如果此代碼正在運行核潛艇,則客戶可能會採取非常模糊的態度。如果這是一個放屁應用程序,那麼誰都不會介意。
  • 復活節彩蛋的性質:是否會引起違法,驚慌,不安,讓粗心的顧客或用戶認為有問題,請停止軟件工作等等。

如果您很高興被叫到首席執行官辦公室進行解釋,或者讓它永遠出現在您的簡歷中,那麼就去做吧。如果您不願意在到處都是同事/客戶的房間裡講解它,那就最好把它放在外面。

您還需要真的很確定 絕對沒有辦法它可能會干擾軟件的功能-正如普拉切特的法律所指出的那樣:“百萬分之一的機會發生十分之九”

我的個人觀點是不要在上面放上您的名字或笨拙的照片,這種事情在5年後可能會像您的嬰兒照片一樣令人尷尬,虛榮而不是樂趣。有一些有據可查(且廣受喜愛)的複活節彩蛋,可以打印出開發人員團隊的積分並提供有趣的小信息,但是僅僅停留在自己那裡似乎有點自戀。

如果無論如何您都可以“絕對確定”,那麼整個行業都可以放棄代碼審查,並鼓勵人們在進行更改之前絕對確定。
JMK
2016-06-11 21:45:00 UTC
view on stackexchange narkive permalink

我認為有人可能會兩次按下相同的按鈕,而無論是使用計算機還是使用您的軟件,都可能沒有很好的體驗。

也許他們認為您的軟件已凍結,也許他們的計算機運行緩慢或正在運行,也許他們的滑浪板/鼠標出現問題,也許他們只是一個真的糟糕的日子,並把沮喪的情緒帶到了您的軟件上。

無論哪種情況,如果是這樣,並且出現了您的照片以及一些愚蠢的模因,那對您來說就不會很好!

另一個常見的情況是:我有時鍵盤上有東西掉落並且觸發了許多事件。如果該按鈕具有焦點,則邊緣情況可能很容易顯現。我確定其他人會看到“ StickyKeys”或“ Dictation Assistant”類型的功能,這些功能有時會在快速鍵入或玩遊戲時偶然被按住或按住3n次以上的移位鍵。我確實認為複活節彩蛋可以做得很好,但是它們就像動畫一樣-他們需要有目的。獎勵用戶不拘一格的折衷功能,以愉悅的心情,不要讓驚喜的交易達成。
Jay
2016-06-10 21:31:55 UTC
view on stackexchange narkive permalink

幾個好的答案,沒什麼可重複的,讓我補充:

正如其他人所指出的,如果管理層發現了您的複活節彩蛋,則取決於經理的個性和企業文化,他們可能會嘲笑您,並稱讚您的聰明才智,或者可能因未經授權對軟件進行更改或在兩者之間的任何地方而開除您。

但是...如果發現您的軟件中存在錯誤,復活節彩蛋會導致某些不良事件的發生,例如,它會創建一個安全漏洞或客戶丟失數據,笑聲將突然結束。奇怪的是,您只是對複活節彩蛋進行了快速測試,大概沒有告訴過質量檢查部門,因此他們根本沒有對它進行測試。

這裡有人說要考慮最好的情況,並且從您個人的角度來看,最壞的情況是:您笑了幾分鐘,然後他們開了槍。從客戶的角度考慮最佳情況和最壞情況。最好的情況:他們找到了復活節彩蛋,並得到了一點笑聲。最壞的情況:他們找到了復活節彩蛋,然後軟件失敗了。客戶說:“哦,最近六個月我所有的應收帳款都丟失了,但是肯定能看到程序員的照片和有趣的消息。這是值得的。” ...的機率幾乎為零。如果結果是該軟件所控制的生命支持系統的患者死亡,或者由於您在交通控制系統中引入了錯誤等導致兩列火車相撞。

嘿,我遇到了麻煩是對軟件的未經授權的更改,確實改善了功能。

是的,我本人已在軟件中添加了復活節彩蛋。如果不與管理者清除,我不會再做。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...