PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
PHP
[請益] 如何避免按鍵精靈的攻擊
作者:
tas72732002
(蔥頭)
2017-08-18 10:32:27
請問一下各位大大, 最近碰到一個問題
我有一支API, 這支API所做的事情如下:
step 1. 檢查金額是否足夠(抓DB)
step 2. 如果足夠則進行扣款(抓DB)
但我想到一種情況是, 假設目前錢包有100元, 商品價格100元
當兩個使用者同時呼叫該API
有可能同時執行了step1, 所以都取到金額為100元,
所以這兩個使用者都會購買成功,
因為PHP 不支援多執行緒lock的機制, 我想請問一般都要如何避免這種情況?
作者:
xdraculax
(首席怪叔叔)
2017-08-18 22:18:00
transaction or lock table
作者:
st1009
(前端攻城師)
2017-08-18 14:55:00
時間鎖,你抓DB到正式修改資料之間有等待時間確認是否有同時操作
作者:
dinos
(守護神)
2017-08-18 11:26:00
step2的where加上判斷餘額是否足夠
作者:
cf1064
(蚵仔)
2017-08-18 10:57:00
db的select for update?
作者:
agreerga
(鴨毛)
2017-08-18 10:47:00
只鎖住step2的扣款動作?
作者:
z20240
(åŸ¹æ ¹)
2017-08-19 17:23:00
update table set price = newPrice where price is enough ;
作者: dou0228 (7777)
2017-08-22 23:18:00
db with transaction
作者:
yanli2
( Yan™)
2017-08-25 03:03:00
要扣款前再抓一次DB 並且延遲幾秒
作者:
angelmark
(無言的結局)
2017-09-01 18:07:00
db的autocommit先關閉 在下select時加上for update成功執行完後再把autocommit開啟
繼續閱讀
[請益] 關於 413 Request Entity Too Large
liisi
[請益] xampp裝不起來
virgin7
[請益] 關於laravel 無法使用\Config與\Lang
herbacin
[請益]html檔傳資料到php裡卻一直出錯沒有該檔案
schedule6666
[請益] radio的檢查
j4bteddd
[請益] 容易入門的測試方案
p52189
[請益] radio選擇
j4bteddd
[請益] [Solved]php有沒有辦法能合併影片呢?
BIAO
[請益] 使用SoapClient錯誤但postman測試正常
sohumi
[請益] external ip換了 ,worldpress登不進去
alexcoco
Links
booklink
Contact Us: admin [ a t ] ucptt.com