【问题标题】:Guidance for security architecture of jquery mobile/facebook/paypal/asp.net appjquery mobile/facebook/paypal/asp.net app的安全架构指南
【发布时间】:2012-11-25 03:50:13
【问题描述】:

我有一个 jquery 移动应用程序,它使用 ajax 来调用我用 C# 编写的 asp.net Web 方法。这些方法查询 SQL Server 数据库并返回数据。此时无需用户注册。在喜欢、cmets 和发布到用户的墙/时间线方面,我还使用 javascript sdk 进行了一些 facebook 集成。

我开发的下一步是,用户将能够支付费用以将数据输入到我的数据库中。我想避免进入用户/密码管理,而是依靠 facebook 登录(以后可能还有其他社交网络,现在让我们坚持使用 facebook)。

所以我看到的工作流程是:

  1. 如果用户尚未登录,我会提示用户登录 facebook
  2. 用户在我的网站上点击“购买”,这是一个 paypal 按钮
  3. 用户被发送到安全的 paypal 页面,进行付款,然后返回我的网站
  4. 支付成功后,我调用一个web方法插入新数据,新数据被标记为由这个facebook用户输入。 Web 方法将连接到执行所有获取的同一 sql server 帐户,不会有单个访问者的 sql server 用户帐户。

我在这里看到了一些有趣的安全漏洞。就像有人编写代码直接调用我的插入 Web 方法一样,无需支付任何费用。我正在寻找有关如何以安全方式将所有这些步骤联系在一起的指导,以便最终我保证输入的任何数据都是 a) 已支付 b) 由当前登录的 facebook 用户输入

我已阅读 facebook 登录开发者文档、paypal 开发者文档和 microsoft asp.net 应用程序服务文档。我基本上可以理解每一个,但我迷失了将它们全部捆绑在一个单一的、安全的交易中。任何提示将不胜感激!

提前谢谢...

【问题讨论】:

    标签: asp.net facebook security jquery-mobile paypal


    【解决方案1】:

    您需要做的是 - 在您的插入网络方法中,验证用户是否已付款。你可以通过几种方式做到这一点。使用 PayPal IPN(即时付款通知)确认付款或切换到 PayPal Express Checkout API,以便在用户被重定向回您的站点后以编程方式验证付款。这是一个快速的操作指南,可以帮助您实现这一点:https://www.x.com/developers/paypal/documentation-tools/express-checkout/how-to/ht_ec-singleItemPayment-curl-etc

    【讨论】:

    • 感谢您的反馈。我一直在 x.com 网站上阅读更多内容,它变得更加混乱。有商家 API、SDK 等 - 不知道从哪里开始。不确定我是否需要 SSL 证书才能拥有 https 页面,我希望这一切都将由 paypal 网站处理。但是在您提供的链接中,这是一个正在发送的密码。不幸的是,我不清楚这是从哪里发送的:安全客户端页面还是使用服务器 SDK 之一的后端服务器?对于贝宝和安全新手来说,很难全面了解全局。更多阅读要做!
    • 支付数据传输怎么样?这似乎也可以工作。
    • 用户名、密码和签名是 PayPal 的 API 凭证(不是最终消费者的凭证)。您需要将它们传递给您对 PayPal 进行的所有 API 调用,以便它可以根据需要对您的调用进行身份验证和授权。由于这些是安全的 API 凭据,因此您需要从服务器端(而不是客户端)进行这些调用。对于 Express checkout API,您可以使用包含对这些 API 的支持的商家 SDK。 SDK 会为您处理很多实现细节。您不需要 SSL 证书。
    • 付款数据传输是一种高级流程,可在 PayPal 为最终消费者呈现的付款页面上动态更新您的付款信息。通常,当您需要根据消费者的地址重新计算运费和税金并在 PayPal 托管页面上显示给消费者时,通常会使用此功能。
    • 根据此链接,您需要一个互联网商家帐户才能使用快速结帐:www.paypal.com/ca/cgi-bin/webscr?cmd=_additional-payment-overview。这意味着我应该已经能够直接接受信用卡,并且只是将 paypal 添加为新的付款方式。我没有商家帐户,我只想使用普通的商业贝宝。而且我没有https。听起来确实没有针对常规贝宝商业帐户的解决方案。我必须说,尝试浏览 paypal 文档是最近记忆中最令人沮丧的经历之一。
    猜你喜欢
    • 2011-02-06
    • 2011-07-04
    • 2012-12-02
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 2011-12-14
    • 1970-01-01
    相关资源
    最近更新 更多