如何解決團(tuán)隊(duì)訪問數(shù)據(jù)庫(kù)的 3 個(gè)致命問題况凉?

開發(fā)人員在開發(fā)過程中避免不了需要訪問數(shù)據(jù)庫(kù)數(shù)據(jù)谚鄙,尤其在團(tuán)隊(duì)協(xié)作中,對(duì)于數(shù)據(jù)庫(kù)數(shù)據(jù)的訪問會(huì)更加頻繁刁绒。

通常團(tuán)隊(duì)成員在管理員或者 DBA 準(zhǔn)備好數(shù)據(jù)源之后闷营,就可以憑借數(shù)據(jù)庫(kù)的賬號(hào)和密碼訪問數(shù)據(jù)庫(kù)中的數(shù)據(jù)了。也正是從這一刻開始知市,這個(gè)團(tuán)隊(duì)訪問數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí)就會(huì)面臨諸多問題傻盟,本文枚舉其中三個(gè)比較典型且棘手的問題:

  • 團(tuán)隊(duì)成員在設(shè)計(jì)數(shù)據(jù)庫(kù)表結(jié)構(gòu)容易帶有隨意性,導(dǎo)致數(shù)據(jù)庫(kù)結(jié)構(gòu)規(guī)范不統(tǒng)一嫂丙。
  • 容易忽略賬號(hào)和權(quán)限的管控娘赴,導(dǎo)致數(shù)據(jù)庫(kù)訪問缺失權(quán)限控制。
  • 數(shù)據(jù)庫(kù)的變更的發(fā)布需要多個(gè)團(tuán)隊(duì)成員通過流程化的方式相互協(xié)作跟啤,如果協(xié)作過程不順暢則會(huì)降低團(tuán)隊(duì)效率诽表。

問題的嚴(yán)重性

如果這些問題沒有被妥善處理好,會(huì)產(chǎn)生哪些影響呢隅肥?接下來我們舉幾個(gè)案例竿奏。

數(shù)據(jù)庫(kù)結(jié)構(gòu)規(guī)范不統(tǒng)一

表結(jié)構(gòu)不規(guī)范會(huì)導(dǎo)致多種后果,包括數(shù)據(jù)分析困難腥放、執(zhí)行速度下降泛啸、以及數(shù)據(jù)可視化困難。這些問題普遍帶有 滯后性秃症、隱蔽性 特點(diǎn)平痰,當(dāng)解決這些問題時(shí)又容易產(chǎn)生更多連帶風(fēng)險(xiǎn)汞舱。

  • 數(shù)據(jù)分析困難:表結(jié)構(gòu)不規(guī)范可能導(dǎo)致數(shù)據(jù)分析師在處理數(shù)據(jù)時(shí)遇到困難。例如宗雇,相同含義字段名稱不統(tǒng)一昂芜,又缺乏相應(yīng)的元信息備注,導(dǎo)致后續(xù)分析數(shù)據(jù)時(shí)還需要消耗大量時(shí)間精力對(duì)數(shù)據(jù)關(guān)系進(jìn)行梳理赔蒲。
  • 執(zhí)行速度下降:不合理的表結(jié)構(gòu)設(shè)計(jì)可能導(dǎo)致數(shù)據(jù)庫(kù)查詢執(zhí)行速度下降泌神。例如,某些查詢語(yǔ)句的執(zhí)行計(jì)劃看似相同舞虱,但由于表結(jié)構(gòu)的不合理設(shè)計(jì)欢际,實(shí)際執(zhí)行效果相差很大,導(dǎo)致查詢速度變慢矾兜。而這個(gè)問題往往在數(shù)據(jù)量變大之后才會(huì)凸顯出來损趋。
  • 數(shù)據(jù)可視化困難:原本不為空的字段列由于表結(jié)構(gòu)約束缺失導(dǎo)致臟數(shù)據(jù)被意外錄入,進(jìn)而在數(shù)據(jù)可視化結(jié)果呈現(xiàn)上產(chǎn)生誤導(dǎo)椅寺,甚至還會(huì)影響用戶對(duì)數(shù)據(jù)的準(zhǔn)確理解浑槽。最直觀的問題就是 “空字符串” 和 “空值” 之間的差別難以被有效界定。

綜上所述返帕,表結(jié)構(gòu)不規(guī)范產(chǎn)生的不僅會(huì)增加數(shù)據(jù)分析的難度桐玻,降低數(shù)據(jù)庫(kù)查詢的執(zhí)行速度,還會(huì)影響數(shù)據(jù)可視化的效果和質(zhì)量荆萤。因此镊靴,規(guī)范化的表結(jié)構(gòu)設(shè)計(jì)對(duì)于業(yè)務(wù)演進(jìn)至關(guān)重要。

數(shù)據(jù)庫(kù)訪問缺失權(quán)限控制

數(shù)據(jù)庫(kù)訪問缺失權(quán)限控制的危害會(huì)比較嚴(yán)重链韭,主要體現(xiàn)在以下幾個(gè)方面:

  • 敏感數(shù)據(jù)泄露更顯:數(shù)據(jù)庫(kù)訪問權(quán)限的缺失容易讓未經(jīng)授權(quán)的用戶訪問到敏感數(shù)據(jù)偏竟,如用戶個(gè)人信息、財(cái)務(wù)數(shù)據(jù)等敞峭。當(dāng)這些具有高度敏感性的數(shù)據(jù)被泄漏出去后苫耸,會(huì)造成更大的災(zāi)害。例如儡陨,被不法分子用于詐騙,以及錯(cuò)失優(yōu)質(zhì)商業(yè)機(jī)會(huì)等量淌。
  • 數(shù)據(jù)篡改風(fēng)險(xiǎn):攻擊者可能通過越權(quán)訪問修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)骗村,通過篡改數(shù)據(jù)謀取私利或者對(duì)整個(gè)業(yè)務(wù)運(yùn)行造成嚴(yán)重影響,如修改賬戶余額呀枢,刪庫(kù)跑路等胚股。
  • 法律責(zé)任與聲譽(yù)損害:由于缺乏權(quán)限控制導(dǎo)致用戶敏感數(shù)據(jù)被泄露,進(jìn)而個(gè)人隱私被侵犯裙秋。企業(yè)可能臨法律責(zé)任琅拌,同時(shí)企業(yè)的聲譽(yù)也將受損缨伊。

綜上所述,數(shù)據(jù)庫(kù)訪問缺失權(quán)限控制會(huì)帶來更加嚴(yán)重的安全風(fēng)險(xiǎn)和法律后果进宝。所以團(tuán)隊(duì)中對(duì)于數(shù)據(jù)庫(kù)數(shù)據(jù)的訪問必須實(shí)施嚴(yán)格的訪問控制和權(quán)限管理刻坊,以避免法律風(fēng)險(xiǎn)以及聲譽(yù)影響。

協(xié)作過程不順暢

協(xié)作過程不順暢最主要的影響是團(tuán)隊(duì)效率党晋,主要包括:

  • 系統(tǒng)穩(wěn)定性受損:協(xié)作不暢可能導(dǎo)致數(shù)據(jù)庫(kù)變更過程中出現(xiàn)錯(cuò)誤或遺漏谭胚,進(jìn)而影響系統(tǒng)的穩(wěn)定性和可靠性,增加系統(tǒng)崩潰的風(fēng)險(xiǎn)未玻。
  • 數(shù)據(jù)安全性問題:協(xié)作不順暢還可能引發(fā)數(shù)據(jù)安全性問題灾而,如數(shù)據(jù)丟失或泄露,對(duì)組織造成重大損失扳剿。
  • 團(tuán)隊(duì)資源浪費(fèi):不順暢的協(xié)作可能導(dǎo)致不必要的重復(fù)工作或錯(cuò)誤操作旁趟,浪費(fèi)人力和時(shí)間資源。

綜上所述庇绽,數(shù)據(jù)庫(kù)變更協(xié)作不順暢會(huì)對(duì)系統(tǒng)穩(wěn)定性锡搜、數(shù)據(jù)安全性、團(tuán)隊(duì)資源利用等多方面造成不良影響敛劝,進(jìn)而使團(tuán)隊(duì)的效率變得更加低下余爆。

解決問題的手段

這些問題在業(yè)內(nèi)通常有著比較明確的解決思路,核心思想是通過團(tuán)隊(duì)化的工具將數(shù)據(jù)庫(kù)的訪問集中到統(tǒng)一平臺(tái)上進(jìn)行夸盟,并通過統(tǒng)一平臺(tái)達(dá)成如下幾個(gè)關(guān)鍵控制手段:

  • 通過 SQL 規(guī)則校驗(yàn)蛾方,拒絕不合理的數(shù)據(jù)庫(kù)結(jié)構(gòu)變更,從而保證數(shù)據(jù)庫(kù)規(guī)范上陕。
  • 集中權(quán)限控制桩砰,方便一目了然地管理和控制。
  • 避免直接連接數(shù)據(jù)庫(kù)释簿,保護(hù)數(shù)據(jù)庫(kù)賬號(hào)亚隅。
  • 對(duì)查詢結(jié)果進(jìn)行脫敏保護(hù),從而避免數(shù)據(jù)隱私泄漏及法律風(fēng)險(xiǎn)庶溶。
  • 通過工單流程提升團(tuán)隊(duì)協(xié)作效率煮纵。
  • 通過企業(yè)統(tǒng)一認(rèn)證,讓團(tuán)隊(duì)的賬號(hào)管理變得更加輕松和簡(jiǎn)單偏螺。

目前能夠提供上述問題解決方案的產(chǎn)品有很多行疏,這里就不再展開。

CloudDM Team 作為全新的企業(yè)級(jí)數(shù)據(jù)庫(kù)數(shù)據(jù)訪問工具套像,在團(tuán)隊(duì)使用場(chǎng)景中做了更加細(xì)致和深入的思考酿联,自然也包含上述問題的解決方案。

規(guī)則校驗(yàn)

使用腳本化方式實(shí)現(xiàn) SQL 規(guī)則校驗(yàn)是一個(gè)比較常見的方法,常見的方案中有兩種技術(shù)路線贞让。

  • 使用已有語(yǔ)言 ava周崭、JavaScript、Lua喳张、Groovy 作為規(guī)則引擎续镇。
  • 使用具有較高限制的自研 DSL 作為規(guī)則引擎。

使用已有語(yǔ)言通常會(huì)面臨兩個(gè)問題:

  • 程序如何接入蹲姐?
  • 安全如何控制磨取?

在采用通用編程語(yǔ)言作為規(guī)則引擎后,安全控制是最難以解決的柴墩。這是由于通用編程語(yǔ)言通常是面向更加廣泛而又復(fù)雜的場(chǎng)景忙厌,需要提供更加靈活和底層的 API 作為保障,比如不受限制的訪問網(wǎng)絡(luò)江咳、文件等資源逢净。

如果采用通用編程語(yǔ)言作為引擎,雖然可以快速滿足需求并節(jié)省開發(fā)成本歼指,但需要在安全控制上做更加深入的控制爹土,本文列出一些用于思考:

  • 網(wǎng)絡(luò):通常 SQL 規(guī)則腳本中是用來承擔(dān)邏輯判斷,并不需要網(wǎng)絡(luò)通信踩身,因此網(wǎng)絡(luò)能力通常是不必要的胀茵。
  • 文件:理由同上
  • CPU/內(nèi)存:這兩類資源具有高度相似性,都是難以被控制挟阻。例如:規(guī)則腳本出現(xiàn)一個(gè)死循環(huán)琼娘,通常作為腳本宿主程序是無法主動(dòng)干預(yù)的。
  • 調(diào)動(dòng)外部程序:這和網(wǎng)絡(luò)附鸽、文件脱拼、比較相像。原則上規(guī)則腳本的執(zhí)行是不能調(diào)用外部程序的坷备。
  • 其它技術(shù)組件導(dǎo)致的安全漏洞:常見的如 OGNL 表達(dá)式的越權(quán)訪問熄浓。

如果采用使用場(chǎng)景更加明確的自研 DSL 作為規(guī)則引擎,通常不會(huì)出現(xiàn)上述問題省撑。因此普遍情況下只要技術(shù)投入成本可以接受赌蔑,都會(huì)選擇此類技術(shù)方案,其主要優(yōu)點(diǎn)是可控性較高竟秫。

CloudDM Team 采用了全新的 自研 Rule Script 引擎娃惯,并通過 Rule Script 強(qiáng)大的編程能力使得 CloudDM Team 的所有內(nèi)置規(guī)則實(shí)現(xiàn)了全部腳本化。這包括 SQL 規(guī)則和脫敏規(guī)則鸿摇。下面這張圖向大家展示了 Rule Script 在 CloudDM Team 中的樣貌。

SQL 查詢規(guī)則展示

查詢規(guī)則展示

權(quán)限控制

使用團(tuán)隊(duì)化的工具將數(shù)據(jù)庫(kù)的訪問集中到統(tǒng)一平臺(tái)劈猿,天然的好處是可以避免直接連接數(shù)據(jù)庫(kù)拙吉,以保護(hù)數(shù)據(jù)庫(kù)賬號(hào)潮孽。而在權(quán)限控制方面,一個(gè)團(tuán)隊(duì)化的數(shù)據(jù)庫(kù)訪問工具必然會(huì)面臨來自兩個(gè)新維度上的要求:

  • 功能上的權(quán)限控制
  • 資源上的權(quán)限控制

在工程實(shí)踐過程中筷黔,權(quán)限系統(tǒng)的設(shè)計(jì)會(huì)受到諸多因素的影響往史,比較常見的權(quán)限控制模型和特點(diǎn)有:

  • IBAC/ACL,基于身份的訪問控制佛舱。核心思想是為資源制定一個(gè) 策略列表椎例,當(dāng)訪問資源時(shí)通過策略列表來保護(hù)資源的訪問。
  • RBAC请祖,基于角色的訪問控制订歪。模型核心定義了 用戶、角色肆捕、權(quán)限 三個(gè)元素刷晋,在軟件產(chǎn)品的功能控制中具有較為普遍的應(yīng)用,它是一個(gè)靜態(tài)模型慎陵。
  • PBAC眼虱,基于策略的訪問控制,相比較 RBAC 模型而言席纽,PBAC 基于規(guī)則和策略動(dòng)態(tài)確定訪問權(quán)限捏悬。它屬于動(dòng)態(tài)模型。
  • ABAC润梯,基于屬性的訪問控制过牙,模型重點(diǎn)在于對(duì)屬性的策略化運(yùn)用。角色仆救、策略抒和、身份 在 ABAC 模型中都是屬性中的一種,ABAC 和 PBAC 某種程度上來看比較相似彤蔽。而 ABAC 最大的弊端就是在于它的復(fù)雜性摧莽,在落地 ABAC 時(shí)某些情況下甚至需要借助 XACML 語(yǔ)言腳本來實(shí)現(xiàn)權(quán)限控制。

為了方便理解顿痪,我們以 “資源是否具備某個(gè)權(quán)限的訪問權(quán)限” 為典型內(nèi)在需求镊辕,以 用戶门扇、角色抚垄、策略 為支點(diǎn)燕少,對(duì)已知的權(quán)限模型進(jìn)行梳理酝陈,并總結(jié)如下:

  • 當(dāng)選擇 策略搀罢、權(quán)限慷嗜、用戶 三角關(guān)系作為權(quán)限訪問控制三要素時(shí)筐骇,便是 ACL/IBAC 模型录淡。

    • 當(dāng)某個(gè)資源被訪問,只需要執(zhí)行一遍策略規(guī)則即可得到權(quán)限亏娜,這便是最簡(jiǎn)單的 ACL(Access Control Lists)焕窝。
    • 將用戶/資源進(jìn)行 標(biāo)識(shí)符 歸類,在利用 ACL 對(duì) 標(biāo)識(shí) 的用戶資源進(jìn)行訪問控制维贺,這便是 IBAC(Identity-Based Access Control)它掂。
  • 使用 角色、用戶溯泣、權(quán)限 三角關(guān)系作為權(quán)限訪問控制三要素虐秋,便是最常見的 RBAC 模型。

    • RBAC(Role-Based Access Control)是一種基于靜態(tài)狀態(tài)下的權(quán)限控制模型垃沦,同時(shí)也是用途最為廣泛的權(quán)限控制模型客给。
    • RBAC 的運(yùn)用非常考驗(yàn)角色的設(shè)計(jì)者栏尚,角色的粒度過細(xì)容易造成特權(quán)泛濫起愈,粒度過粗又會(huì)導(dǎo)致拆分角色而造成角色爆炸。
  • 使用 策略译仗、權(quán)限 關(guān)系時(shí)便是 PBAC 模型抬虽,該模型的最大特點(diǎn)是著重基于策略的訪問控制。

    • PBAC(Policy-Based Access Control)通過定義策略來管理訪問控制纵菌,這些策略可以根據(jù)需要定制阐污。
    • 動(dòng)態(tài)的訪問控制是 PBAC 模型的核心關(guān)鍵,在實(shí)施 PBAC 時(shí)往往需要附帶 審計(jì) 記錄以方便事后查閱咱圆。
  • ABAC(Attribute-Based Access Control) 基于屬性進(jìn)行訪問控制笛辟。在模型中訪問決策不僅基于用戶角色。

    • ABAC 訪問控制機(jī)制根據(jù)主體屬性序苏、對(duì)象屬性手幢、環(huán)境參數(shù)、操作忱详、策略對(duì)該請(qǐng)求進(jìn)行授權(quán)驗(yàn)證围来,具有更高的靈活性。
    • ABAC 在一定程度上和 PBAC 具有相似性匈睁。
    • 在 ABAC 看來 RBAC 中的角色监透、IBAC 中的標(biāo)識(shí)符都是一種屬性。
    • 在 ABAC 模型體系中有很多實(shí)現(xiàn)或者標(biāo)準(zhǔn)航唆,比如:XACML胀蛮、NGAC、LBAC糯钙。

在實(shí)際工程實(shí)踐中可以選用的權(quán)限控制模型可能還會(huì)更多粪狼。具體如何選擇需要基于客觀因素來決定退腥,不能一概而論那種模型更好。而在具體落地過程中往往參考上述標(biāo)準(zhǔn)模型也會(huì)產(chǎn)生更多的變種和新特性再榄。

CloudDM Team 在實(shí)踐權(quán)限控制的過程中采用了多種模型結(jié)合的方式:

  • 通過 RBAC 模型作為功能權(quán)限的訪問控制阅虫。因此 CloudDM Team 可以定義角色、用戶不跟,并且可以為不同角色綁定權(quán)限。
  • 通過 IBAC 對(duì)具體數(shù)據(jù)庫(kù)資源進(jìn)行訪問控制米碰。目前支持對(duì)實(shí)例級(jí)資源進(jìn)行細(xì)粒度 ACL 控制窝革。

工單流程

在使用團(tuán)隊(duì)化數(shù)據(jù)庫(kù)訪問工具時(shí),工單流程是一個(gè)比較常見的場(chǎng)景吕座,一個(gè)典型的用戶場(chǎng)景是:

  • 開發(fā)遞交了 SQL 發(fā)布流程虐译。
  • DBA/管理員或各層級(jí)管理人員會(huì)執(zhí)行流程審批。
  • 在流程通過后完成最終 SQL 的執(zhí)行吴趴。

在專業(yè)的領(lǐng)域中漆诽,一般由 OA 系統(tǒng)可以完成上述動(dòng)作。而在 OA 出現(xiàn)之前锣枝,辦公室解決流程化問題往往是填寫各種申請(qǐng)表厢拭,然后在各級(jí)領(lǐng)導(dǎo)/負(fù)責(zé)人、部門之間流轉(zhuǎn)這些申請(qǐng)單撇叁。對(duì)于數(shù)據(jù)庫(kù)變更的審核往往更加難以管理供鸠,通常由更加專業(yè)的 DBA 負(fù)責(zé)數(shù)據(jù)庫(kù)的變更操作。

一個(gè) OA 系統(tǒng)面臨的主要問題是如何方便地定義表單以及流轉(zhuǎn)表單陨闹。所以在技術(shù)上 OA 系統(tǒng)通常包括如下核心技術(shù):

  • 表單設(shè)計(jì)器
  • 工作流引擎
  • 用戶/組織管理

表單系統(tǒng)主要解決的問題是表單的設(shè)計(jì)以及表單數(shù)據(jù)的存儲(chǔ)/提取楞捂。在早年一個(gè)很好的可視化 HTML 設(shè)計(jì)器可以解決大部分問題,而如今已經(jīng)有更多可用的方案可供選擇趋厉。

  • 表單系統(tǒng)的最大難度在于提供可供交互的類 HTML 設(shè)計(jì)器寨闹,并允許終端用戶自由地設(shè)計(jì)表單的樣式。這些用戶往往對(duì)于計(jì)算機(jī)原理了解并不深入君账。
  • 早年比較常見的方案是基于 Eclipse 開發(fā)一個(gè)工作流設(shè)計(jì)平臺(tái)繁堡,其核心原理是對(duì) Eclipse Web Developer Tools 的二次開發(fā)提供表單設(shè)計(jì)器。
  • OA 系統(tǒng)將表單設(shè)計(jì)器產(chǎn)生的數(shù)據(jù)進(jìn)行存儲(chǔ)杈绸,在需要時(shí)按照設(shè)計(jì)器設(shè)計(jì)的樣式重新展現(xiàn)并填充具體數(shù)據(jù)帖蔓。

流程引擎,解決的主要問題是提供一個(gè)統(tǒng)一的模式瞳脓,讓企業(yè)可以設(shè)計(jì)自己的流程塑娇。

  • 在流程設(shè)計(jì)中比較典型的場(chǎng)景有:加簽、會(huì)簽劫侧、順序流程埋酬、子流程哨啃、并行流程等。
  • 在工作流領(lǐng)域也存在很多成熟的解決方案写妥,如:Activiti拳球、Flowable、jBPM珍特。 本文不再詳細(xì)展開祝峻。

CloudDM Team 在工單流程的設(shè)計(jì)上簡(jiǎn)化了技術(shù)負(fù)擔(dān),其核心只關(guān)注審批的 發(fā)起審批結(jié)果扎筒, 讓外部 OA 系統(tǒng)以更加專業(yè)的角度來負(fù)責(zé)工單流轉(zhuǎn)工作莱找,這樣做有以下好處:

  • 專業(yè)的事情專業(yè)系統(tǒng)來負(fù)責(zé),減輕技術(shù)負(fù)擔(dān)嗜桌,提升整個(gè)系統(tǒng)的穩(wěn)定性奥溺。
  • 可以接入用戶已有 OA 系統(tǒng),從而和用戶的 IT 系統(tǒng)結(jié)合更加緊密骨宠。


總結(jié)

本文提出了團(tuán)隊(duì)使用數(shù)據(jù)庫(kù)面臨的問題以及問題的后果浮定,介紹了行業(yè)中解決問題的常用手段,及 CloudDM Team 在眾多產(chǎn)品中的獨(dú)特優(yōu)勢(shì)层亿。如果您感覺本文有所收獲桦卒,歡迎前來試用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末匿又,一起剝皮案震驚了整個(gè)濱河市闸盔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌琳省,老刑警劉巖迎吵,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異针贬,居然都是意外死亡击费,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門桦他,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔫巩,“玉大人,你說我怎么就攤上這事快压≡沧校” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵蔫劣,是天一觀的道長(zhǎng)坪郭。 經(jīng)常有香客問我,道長(zhǎng)脉幢,這世上最難降的妖魔是什么歪沃? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任嗦锐,我火速辦了婚禮,結(jié)果婚禮上沪曙,老公的妹妹穿的比我還像新娘奕污。我一直安慰自己,他們只是感情好液走,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布碳默。 她就那樣靜靜地躺著,像睡著了一般缘眶。 火紅的嫁衣襯著肌膚如雪腻窒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天磅崭,我揣著相機(jī)與錄音,去河邊找鬼瓦哎。 笑死砸喻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蒋譬。 我是一名探鬼主播割岛,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼犯助!你這毒婦竟也來了癣漆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤剂买,失蹤者是張志新(化名)和其女友劉穎惠爽,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瞬哼,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡婚肆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了坐慰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片较性。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖结胀,靈堂內(nèi)的尸體忽然破棺而出赞咙,到底是詐尸還是另有隱情,我是刑警寧澤糟港,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布攀操,位于F島的核電站,受9級(jí)特大地震影響秸抚,放射性物質(zhì)發(fā)生泄漏崔赌。R本人自食惡果不足惜意蛀,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望健芭。 院中可真熱鬧县钥,春花似錦、人聲如沸慈迈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)痒留。三九已至谴麦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間伸头,已是汗流浹背匾效。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留恤磷,地道東北人面哼。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像扫步,于是被迫代替她去往敵國(guó)和親魔策。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容