Coder Social home page Coder Social logo

revisit.link.hub's People

Contributors

brycebaril avatar flet avatar gf3 avatar imakewebthings avatar jasonrhodes avatar justinabrahms avatar kid-icarus avatar kirbysayshi avatar lauradegroot avatar llkats avatar mferrier avatar rickycodes avatar rozap avatar stefanbohacek avatar swartzcr avatar taotetek avatar thethp avatar waferbaby avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

revisit.link.hub's Issues

Make playing with the same gif easier

I wonder if since when you go back from the creation screen it still has the file name in the input box, it's possible to load the image so you don't have to click through again or refresh?

I'd like to tackle this.

Potential security concern when creating art

In lib.services.js there is no validation of the data sent from the client when the "create" button is clicked.

This means that someone could inject any URL they want on the client (via dev tools or just POSTing directly) and the server would send a request to it. This could be used for nefarious purposes.

Possible fix: add a few lines to the addService(sv) function to check if sv is actually listed in serviceList before adding it to the tether.

Sorry I was going to send a PR but have not had a chance to write it up... I figure someone else might get to it before me. :)

Refine specification and validation of file upload sizes.

At this point the spec states:

'Any content passed through http://hub.revisit.link cannot exceed 1 MB per data URI. But data coming from distributed services may increase to a greater size, so ensure your service endpoint can handle a size averaging between 1-3 MB.'

#36 (comment) states some confusion in the spec regarding a maximum transmission size of the overall payload, and various components of the payload.

What do you think about mocking up different payloads and checking for a 413 status code and the original object as posted to the service returned (noop)? That could be added to validate.revisit.link.

I think the approach of asking all services to simply 413 and noop on a the post of a payload over 2MB is reasonable. It simplifies service development in that a payload will simply be passed through the chain in the event that it at some point it exceeds the maximum allowed sized.

Any thoughts?

"Random" service?

Provide a service that selects a random service. Everyone loves suprises! This could be done as a separate service, but may be easier to accomplish at the hub.

It could be done at the hub via some "slug" as the URL (in service.json) that is picked up at submission and switched to a random service.

Thoughts?

back button breaks functionality

browser's back button be borked

to reproduce:

  1. upload an image
  2. add services, wevs
  3. submit
  4. enjoy your gif
  5. press the browser's back button
  6. observe that the image filename is still present in the upload area, and you can press submit again
  7. observe that this is now effed up and you need to reload to fix it

Sort options I cannot choose to the bottom

Depending on file format (PNG, for instance) a lot of options cannot be chosen. If you don't want to hide them altogether, maybe just push them to the bottom of the list?

An arbitrary number of services can be added on any given token

The number of services that can be added per POST /service is limited to 5, but there's nothing in place to stop a malicious user from sending requests containing the same token with up to 5 new services to add to the chain. revisit-tether similarly performs no range checking when playing tethers, so one tether can cause the hub to perform a very large number of requests for a single tether.

To reproduce in a browser:

  • Open http://hub.revisit.link
  • Setup a tether
  • Click Create
  • Copy the tether ID
  • Open http://hub.revisit.link and wait for the services to load
  • Open the dev tools and do: $('#token').val('<tether ID>')
  • Choose a new image and add more services
  • Click Create

This could be more easily/speedily exploited with an external script, and also allows malicious users to modify other users' tethers once they are created (if, for instance, someone links a nice sequence for others to replay).

My recommendation would be for tethers to be stored in a single DB key and created in a single call, failing if they already exist, but another option would be to range-check/limit on playback, or range-check/limit on insert (adds a DB query to insert).

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.