Coder Social home page Coder Social logo

Comments (6)

adrianhopebailie avatar adrianhopebailie commented on July 23, 2024

๐Ÿ‘Ž unless we have a pre-defined set of verbs the payee can choose from or these are automatically inferred by the payment app based on the terms of the request.

The ability for the entity requesting payment to manipulate the user interface presented to the payer should be considered VERY carefully. This is heavily locked down in many existing payment systems today for good reason.

EXAMPLE: A developer writing custom firmware for physical card acceptance devices is unable to use custom prompts when the device is requesting input from the user. The reasoning is that the developer could publish a malicious application that prompts a user to input their PIN when the data is not being captured securely and the developer is therefor able to steal the user's PIN.

This is a well-understood attack vector in a very mature payments system. Allowing payee's to control the input/prompts presented to users in our far more open and flexible system may expose the user to attacks we can't even imagine today.

I would suggest 3 alternatives (with preference for the first):

  1. Allow the payment app to display an appropriate verb based on whatever logic they choose. The payment app is the payer's agent and so is not likely to be malicious or defraud the payer. Example: If the payer is tricked into making a payment or signing up for a subscription by their payment agent it's far more likely they can pursue legal action against the publisher of the payment app than the payee.
  2. Always use the verb "Authorise" (which can be easily translated) and allow the payee to provide an appropriate product description:
    1. "Buy 15 widgets" - Authorize
    2. "Reserve $120 for your rental car" - Authorize
    3. "Subscribe to a weekly newsletter for $15 per week" - Authorize
  3. Define a set of verbs which are not provided by the payee but selected by the payment app or mediator (browser) based on the terms of the payment being requested. The algorithm used to select these could be well-defined as part of our standard.

from webpayments.

webpayments avatar webpayments commented on July 23, 2024

Is there danger that if we attempt to define these "terms" it will run
afoul of regulatory requirements? The world is wide...

On Mon, Jan 25, 2016 at 7:58 AM, Adrian Hope-Bailie <
[email protected]> wrote:

[image: ๐Ÿ‘Ž] unless we have a pre-defined set of verbs the payee can
choose from or these are automatically inferred by the payment app based on
the terms of the request.

The ability for the entity requesting payment to manipulate the user
interface presented to the payer should be considered VERY carefully. This
is heavily locked down in many existing payment systems today for good
reason.

EXAMPLE: A developer writing custom firmware for physical card
acceptance devices is unable to use custom prompts when the device is
requesting input from the user. The reasoning is that the developer could
publish a malicious application that prompts a user to input their PIN when
the data is not being captured securely and the developer is therefor able
to steal the user's PIN.

This is a well-understood attack vector in a very mature payments system.
Allowing payee's to control the input/prompts presented to users in our far
more open and flexible system may expose the user to attacks we can't even
imagine today.

I would suggest 3 alternatives (with preference for the first):

  1. Allow the payment app to display an appropriate verb based on
    whatever logic they choose. The payment app is the payer's agent and so is
    not likely to be malicious or defraud the payer. Example: If the payer is
    tricked into making a payment or signing up for a subscription by their
    payment agent it's far more likely they can pursue legal action against the
    publisher of the payment app than the payee.
  2. Always use the verb "Authorise" (which can be easily translated)
    and allow the payee to provide an appropriate product description:
    1. "Buy 15 widgets" - Authorize
    2. "Reserve $120 for your rental car" - Authorize
    3. "Subscribe to a weekly newsletter for $15 per week" - Authorize
  3. Define a set of verbs which are not provided by the payee but
    selected by the payment app or mediator (browser) based on the terms of the
    payment being requested. The algorithm used to select these could be
    well-defined as part of our standard.

โ€”
Reply to this email directly or view it on GitHub
#66 (comment).

-Shane

from webpayments.

rsolomakhin avatar rsolomakhin commented on July 23, 2024

I prefer that the browser has the control of the UI strings, including the button label. I expect Chrome's UI to always default to a single generic term, for example "Pay", "Buy", or "Authorize".

from webpayments.

webpayments avatar webpayments commented on July 23, 2024

+1 to Rouslanโ€™s suggestion.

On Feb 9, 2016, at 3:17 PM, Rouslan Solomakhin [email protected] wrote:

I prefer that the browser has the control of the UI strings, including the button label. I expect Chrome's UI to always default to a single generic term, for example "Pay", "Buy", or "Authorize".

โ€”
Reply to this email directly or view it on GitHub #66 (comment).

from webpayments.

msporny avatar msporny commented on July 23, 2024

Migrated to w3c/payment-request#56.

@adrianhopebailie, this is your issue, please close it if you feel that w3c/payment-request#56 should be the new home for this issue.

from webpayments.

adrianhopebailie avatar adrianhopebailie commented on July 23, 2024

Have picked this up in the new thread.

from webpayments.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.