Giter Club home page Giter Club logo

hackage2's People

Contributors

aslatter avatar basvandijk avatar batterseapower avatar bgamari avatar bmillwood avatar davidlazar avatar dcoutts avatar eelco avatar ehird avatar gracenotes avatar isomorphism avatar lemmih avatar nomeata avatar noteed avatar saizan avatar simonmichael avatar skogsbaer avatar tommd avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

Forkers

ehird bgamari

hackage2's Issues

Problem with links on hackage.haskell.org

Looking into http://hackage.haskell.org/package/pipes-4.0.0/docs/Pipes-Prelude.html

concat :: ([LINK1]Monad m, [LINK2]Foldable f) => [LINK3]Pipe (f a) a m r

Has following links:
LINK1=file:///packages/archive/base/4.6.0.1/doc/html/Control-Monad.html#t:Monad
LINK2=file:///packages/archive/base/4.6.0.1/doc/html/Data-Foldable.html#t:Foldable
LINK3=http://hackage.haskell.org/package/pipes-4.0.0/docs/Pipes-Core.html#t:Pipe

Why is that? Is it haddock problem or hackage-s?

Package uploading is completely unsecured

Right now, anyone can register an account (without passing any kind of CAPTCHA or anything, so bots will overrun the place quickly on a live site) and upload new packages to their heart's content. This is a major risk for several reasons (package installation can do evil stuff with custom build types, easy to use up tons of disk space, etc.)

Of course, nothing can truly solve the security issue, but I suggest the following:

  1. A simple but Hackage-specific CAPTCHA on the registration page (e.g. "What language are HackageDB packages written for?") โ€” it's unlikely that spambots will target it specifically, and a simple but unique CAPTCHA will be stronger than a generic solution like reCAPTCHA which has a lot of effort going into breaking it (e.g. someone being paid to fill out CAPTCHAs isn't going to have any idea that the answer is "Haskell")
  2. Limit package uploading to members of a group which only admins can add to

This should be a simple change to the code. The workflow for a package uploader would be:

  1. Register an account
  2. Email the maintainer asking for a package upload

This is basically the same as the Hackage1 registration process, but a bit easier for the maintainer.

<dcoutts> bgamari, cmccann, elliott: so the auth system in the new design copes ok with package
uploaders, what it does not cover well is casual users who might want to post reviews, vote etc,
but not upload packages
<dcoutts> since you probably want self-registration for those users
<dcoutts> but for uploaders it's sensible to have a human in the loop
<bgamari> Certainly
<dcoutts> like we do in the current system
<dcoutts> so there's an admin user group who can edit other groups
<dcoutts> ie grant permissions
[...]
<dcoutts> elliott, cmccann: right, plus in the new system since there's a per-package uploader
group then unknown users cannot subvert well known names (ie packages)
<dcoutts> so in the new system malicious people can still upload *new* malicious packages
<dcoutts> but cannot subvert e.g. base

An ideal solution would be something like:

  1. Reasonable per-user quotas (liftable on request) for disk usage, to stop people spamming the system
  2. Users by default can upload packages, but they're in a quarantine: not visible on the site or installable
  3. Whenever a user uploads their first package, the maintainer gets an email and can check it out and approve the user (making their packages public) if it looks OK

That would be nicer, but probably require a lot more coding than the simpler solution.

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.