Security

編寫 postgres 同步腳本——這安全嗎?

  • April 27, 2012

我編寫了一個腳本來將生產數據庫與開發數據庫同步(從頭開始重新創建),並且我想深入了解潛在的安全漏洞/問題,該腳本發佈在下面。出於安全目的,伺服器禁用了遠端訪問,並且使用公鑰身份驗證管理 ssh 身份驗證。

#!/bin/bash
#this is pretty seriously sketchy script...
current_time=`date +%s` 
dump_file_name=/tmp/temporary_dump_$current_time.dump
echo SSHing and dumping to $dump_file_name
ssh -t remoteuser@remote.server.amazonaws.com << EOT
pg_dump -U postgres -Fc dbName > $dump_file_name
PASSWORD #password in plain text
exit
EOT
echo SCPing the file locally to: `pwd`$dump_file_name
scp remoteuser@remote.server.amazonaws.com:$dump_file_name $dump_file_name

echo Cleaning up the remote file
ssh -t remoteuser@remote.server.amazonaws.com << EOT
rm $dump_file_name
exit
EOT

ssh -t development@development-testing << EOT
pg_restore --clean --dbname=dbName -Fc --username=postgres -W $dump_file_name
PASSWORD #password in plain text
exit
EOT

echo Cleaning up the local file
rm $dump_file_name

exit 0

乍一看,我看到了四個問題:

  1. 您正在以明文形式儲存密碼。

罪孽深重,甚至不可饒恕。還有其他方法可以解決這個問題,儘管每種方法都有自己的安全問題。

如果您絕對必須將其儲存在這裡,請確保任何不應該擁有密碼的人都無法讀取該腳本… 2. 您將未加密的數據庫轉儲儲存在雲中。

真的相信亞馬遜的安全嗎?你不應該。 3. 您可以多次執行此腳本(並同時執行 2 個)。

這不是一個“安全”問題,但它可能會濫用您的數據庫。該腳本應將自身鎖定,因此它不能多次執行。 4. pg_dump gets大型數據庫效率低

這也不是“安全”問題,但請查看Postgres 備份和恢復文件以獲取更多資訊。還可以考慮在我們的 DBA 站點上

詢問有關備份的問題。

引用自:https://serverfault.com/questions/383583