我搜索了周圍和found a way to do exactly this。但我很猶豫,因爲我偶爾會讀到它的"security risk"。不幸的是,沒有人詳細說明原因。就我個人而言,我不能想到任何安全風險都不會涉及到攻擊者已經擁有他們不應該擁有的權限。 MySQL/PHP服務器在同一臺機器上運行。所以MySQL和PHP之間沒有公共請求。使用MySQL觸發器執行PHP有哪些安全風險?
觸發的PHP腳本將對第三方CRM/ESP上的Web服務進行API調用,該服務在其服務器上保留某些表的簡化版本。然後,我們的營銷團隊可以登錄CRM的GUI,發送電子郵件,收集信息並計劃營銷活動,而無需打擾開發團隊。
該服務器上的表不會鏡像我們的,它們只包含他們需要的信息。我想使用觸發器的原因是儘可能保持其信息最新,並將邏輯放在一個地方,而不是分散在整個項目中。
更新: 我總是清理/驗證任何與MySQL接觸的表單。我從不在我的表格中存儲PHP。我從來不使用FTP(使用.pem而不是密碼的SFTP)。 將執行的腳本將是我創建的單個文件,不會改變哪個文件正在經歷我使用的相同框架(zend)。傳遞給腳本的唯一變量將是行的id(它將被驗證爲INT)。 我正在考慮不這樣做,因爲性能。並且讓PHP異步執行是可能的,但是很困難並且不值得我的時間去實現。但我仍然很好奇,除了性能損失之外,安全問題與說網絡服務有什麼不同?我的意思是你必須像使用Web服務一樣進行清理/驗證,所以考慮到這一點,會出現什麼問題?
這是一個安全風險,因爲它可以執行任意代碼。該代碼可以執行任何操作,直至幷包括DROP TABLE STUDENTS。通過在線路上發送代碼來構建應用程序聽起來像是一個非常糟糕的主意,而且無論如何您並不需要它。 – 2013-04-25 18:11:14