Tag Archives: replace

PHP Composer 的安全性問題

Composer 是 PHP 上新一代的套件管理軟體。 Composer 與之前各種方案不同的地方在於,後面掛了 Packagist 這個 PHP package archivist,讓使用者很方便的取得套件 (以及更新)。 其中有一個功能是 replace,表示我所開發的這個套件「宣稱」可以取代其他套件 (通常是 API compatible)。 看到這個功能的時候,以為是要讓 Packagist 能夠串起連結。畢竟偶而會發生「這個套件最新版是 2008 年了,到底有沒有後續維護啊」的情況。如果 Packagist 官方網站可以串起連結,可以節省開發者時間,而且也可以利用 Packagist 上的熱門度來決定要用哪一個後繼者。 但實際上與預期的不同,Composer 的預設值是會「自動」尋找更新並且真的使用,也就是前幾天被丟出來的議題:「Composer is wide open with a massive security vulnerability」。 攻擊者只要在 Packagist 上面上傳一堆含有惡意程式碼的套件 (並且利用 … Continue reading

Posted in Computer, Murmuring, Network, Programming, Security, Software | Tagged , , , , | Leave a comment

UPSERT

維基百科對 UPSERT 的說明:(取自「Merge (SQL)」條目) A relational database management system uses SQL MERGE (also called upsert) statements to INSERT new records or UPDATE existing records depending on whether or not a condition matches. 在 MySQL 裡的兩種語法其實就是在實做這個需求: REPLACE INTO ... INSERT INTO … Continue reading

Posted in Computer, Database, Murmuring, MySQL, PostgreSQL, Software | Tagged , , , , , , , , , , , , | Leave a comment