网站上需要用户通过paypal付款,然后对用户进一步操作(增加权限之类)。
是不是大多数付款方式都类似paypal的流程:
1.在自己网站上提交表单到paypal,用户在paypal付款成功之后跳转回网站。
2.根据从paypal跳转回来的结果显示成功与否
3.然后等待paypal发送消息到网站对应接口来确认订单(IPN之类)
在接手的项目中发现,后台仅仅验证了IPN是否是由paypal发送来的(确认了来源及付款状态)。而且在上面第二步中,如果用户跳转回来是成功的话,就直接给用户提升权限了。
如果是这样,如果用户修改了提交到paypal的表单:比如收100块,但是修改成收1块。用户一样能带着paypal成功付款1元的消息回到网站。不就坑爹了?
手头暂时不能做付款整个流程的测试,但是我已经很容易就修改了表单提交到paypal。
所以想问这方面有经验的同学,在收到IPN或成功返回之后,是不是起码该做一个价钱的检查?还应该检查一些什么 呢?
PS:网站是外包团队做的,来谈的人看上去很专业各种计划、时间估算、模块划分,所以好疑惑。
回复讨论(解决方案)
支付成功后平台会通知你的服务器,并给你一个交易码,此时一定要用它再去平台的接口主动发请求验证,此时返回的信息才是可信的
支付成功后平台会通知你的服务器,并给你一个交易码,此时一定要用它再去平台的接口主动发请求验证,此时返回的信息才是可信的
有的返回信息的时候带了一个验证码,用私钥(类似)验证下就可以确保没有问题。
paypal 的验证还算中规中矩,你在收取到所有参数后需要将所有参数都发送回paypal做一个验证,当然如果你的服务器这步也给劫持了.那我想人家也不需要那么麻烦了吧 直接改你数据好了。呵呵
判断 paypal 返回的内容是否是 VERIFIED 再判断返回的卖家邮箱是否是你的帐号,再判断金额是否和你保存在数据库里的金额一致,再判断结果是否 Completed 再执行最后的业务逻辑. 当然你可以先判断是否是 Completed 再判断后面的,但是 订单验证一定是要放在第一步的
做过不下10种国外支付,最麻烦的支付是台湾的,最恶心的是越南的....
paypal 的验证还算中规中矩,你在收取到所有参数后需要将所有参数都发送回paypal做一个验证,当然如果你的服务器这步也给劫持了.那我想人家也不需要那么麻烦了吧 直接改你数据好了。呵呵
判断 paypal 返回的内容是否是 VERIFIED 再判断返回的卖家邮箱是否是你的帐号,再判断金额是否和你保存在数据库里的金额一致,再判断结果是否 Completed 再执行最后的业务逻辑. 当然你可以先判断是否是 Completed 再判断后面的,但是 订单验证一定是要放在第一步的
做过不下10种国外支付,最麻烦的支付是台湾的,最恶心的是越南的....
恩,那就要验证订单金额,这点我想的没错了。周六测试了下,确实可以通过修改form表单达到少付钱的目的。真是坑啊
台湾如何麻烦啦?
越南为啥恶心呢?
paypal 的验证还算中规中矩,你在收取到所有参数后需要将所有参数都发送回paypal做一个验证,当然如果你的服务器这步也给劫持了.那我想人家也不需要那么麻烦了吧 直接改你数据好了。呵呵
判断 paypal 返回的内容是否是 VERIFIED 再判断返回的卖家邮箱是否是你的帐号,再判断金额是否和你保存在数据库里的金额一致,再判断结果是否 Completed 再执行最后的业务逻辑. 当然你可以先判断是否是 Completed 再判断后面的,但是 订单验证一定是要放在第一步的
做过不下10种国外支付,最麻烦的支付是台湾的,最恶心的是越南的....
恩,那就要验证订单金额,这点我想的没错了。周六测试了下,确实可以通过修改form表单达到少付钱的目的。真是坑啊
台湾如何麻烦啦?
越南为啥恶心呢?
说来话长...就不说了.哈哈哈

phpIdentifiesauser'ssessionSessionSessionCookiesAndSessionId.1)whiwsession_start()被稱為,phpgeneratesainiquesesesessionIdStoredInacookInAcookInAcienamedInAcienamedphpsessIdontheuser'sbrowser'sbrowser.2)thisIdallowSphptpptpptpptpptpptpptpptoretoreteretrieetrieetrieetrieetrieetrieetreetrieetrieetrieetrieetremthafromtheserver。

PHP會話的安全可以通過以下措施實現:1.使用session_regenerate_id()在用戶登錄或重要操作時重新生成會話ID。 2.通過HTTPS協議加密傳輸會話ID。 3.使用session_save_path()指定安全目錄存儲會話數據,並正確設置權限。

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

ToretrievedatafromaPHPsession,startthesessionwithsession_start()andaccessvariablesinthe$_SESSIONarray.Forexample:1)Startthesession:session_start().2)Retrievedata:$username=$_SESSION['username'];echo"Welcome,".$username;.Sessionsareserver-si

利用會話構建高效購物車系統的步驟包括:1)理解會話的定義與作用,會話是服務器端的存儲機制,用於跨請求維護用戶狀態;2)實現基本的會話管理,如添加商品到購物車;3)擴展到高級用法,支持商品數量管理和刪除;4)優化性能和安全性,通過持久化會話數據和使用安全的會話標識符。

本文討論了PHP中的crypt()和password_hash()的差異,以進行密碼哈希,重點介紹其實施,安全性和對現代Web應用程序的適用性。

文章討論了通過輸入驗證,輸出編碼以及使用OWASP ESAPI和HTML淨化器之類的工具來防止PHP中的跨站點腳本(XSS)。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。