Find a better/simpler solution for lbry.tech #119

Closed
opened 2018-07-06 00:31:48 +02:00 by NetOpWibby · 2 comments
NetOpWibby commented 2018-07-06 00:31:48 +02:00 (Migrated from github.com)

Not for immediate resolution

Vuepress, while a nice system for a small site has too many caveats for my liking. Modern routing is a mess, internal dependencies aren't updated thus making every site built with it susceptible to trolls, and it does a lot of "magic" under the hood that I don't have insight into aside from going through that repo's codebase. Not that magic is terrible but I shouldn't have to search DDG for 10 minutes to find the source of an error.

References

┌──────────────────────────────────────────────────────────────────────────────┐
│                                Manual Review                                 │
│            Some vulnerabilities require your attention to resolve            │
│                                                                              │
│         Visit https://go.npm.me/audit-guide for additional guidance          │
└──────────────────────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate      │ Prototype pollution                                          │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ hoek                                                         │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in    │ > 4.2.0 < 5.0.0 || >= 5.0.3                                  │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ node-sass                                                    │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ node-sass > node-gyp > request > hawk > boom > hoek          │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://nodesecurity.io/advisories/566                       │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate      │ Prototype pollution                                          │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ hoek                                                         │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in    │ > 4.2.0 < 5.0.0 || >= 5.0.3                                  │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ node-sass                                                    │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ node-sass > node-gyp > request > hawk > cryptiles > boom >   │
│               │ hoek                                                         │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://nodesecurity.io/advisories/566                       │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate      │ Prototype pollution                                          │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ hoek                                                         │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in    │ > 4.2.0 < 5.0.0 || >= 5.0.3                                  │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ node-sass                                                    │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ node-sass > node-gyp > request > hawk > hoek                 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://nodesecurity.io/advisories/566                       │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate      │ Prototype pollution                                          │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ hoek                                                         │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in    │ > 4.2.0 < 5.0.0 || >= 5.0.3                                  │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ node-sass                                                    │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ node-sass > node-gyp > request > hawk > sntp > hoek          │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://nodesecurity.io/advisories/566                       │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ High          │ Regular Expression Denial of Service                         │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ string                                                       │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in    │ No patch available                                           │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ vuepress                                                     │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ vuepress > markdown-it-anchor > string                       │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://nodesecurity.io/advisories/536                       │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ High          │ Regular Expression Denial of Service                         │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ string                                                       │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in    │ No patch available                                           │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ vuepress                                                     │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ vuepress > markdown-it-table-of-contents > string            │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://nodesecurity.io/advisories/536                       │
└───────────────┴──────────────────────────────────────────────────────────────┘
found 6 vulnerabilities (4 moderate, 2 high) in 11895 scanned packages
  6 vulnerabilities require manual review. See the full report for details.

Alternatives

  • Create custom site from scratch:
    • PROS:
      • Better control over dependencies. We're using a minor dependency that isn't updated as quickly as we'd like? Fork it and make it an internal dependency.
      • No more .html pages or placing a single file inside a folder just to get rid of .html
      • We know everything, like the Architect in the Matrix.
    • CONS:
      • Doing everything from scratch.
      • Don't have the benefit of merely plugging in content and going about our merry way.
  • Some other platform:
    • TBD

Summary

I'm a huge fan of security and my inability to ensure this project is in fact secure gets on my nerves. The (minor) usability issues with routing and other things don't help.

fastify and choo would be a nice combo for the next iteration of .tech, coupled with a simple Markdown parser. We'll see.

# Not for immediate resolution Vuepress, while a nice system for a small site has too many caveats for my liking. Modern routing is a mess, internal dependencies aren't updated thus making every site built with it susceptible to trolls, and it does a lot of "magic" under the hood that I don't have insight into aside from going through that repo's codebase. _Not that magic is terrible but I shouldn't have to search DDG for 10 minutes to find the source of an error._ ### References - `DeprecationWarning: Tapable.plugin is deprecated. Use new API on .hooks instead` https://stackoverflow.com/questions/49942558/deprecationwarning-tapable-plugin-is-deprecated-use-new-api-on-hooks-instea - npm audit security report: ``` ┌──────────────────────────────────────────────────────────────────────────────┐ │ Manual Review │ │ Some vulnerabilities require your attention to resolve │ │ │ │ Visit https://go.npm.me/audit-guide for additional guidance │ └──────────────────────────────────────────────────────────────────────────────┘ ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ Moderate │ Prototype pollution │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ hoek │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ > 4.2.0 < 5.0.0 || >= 5.0.3 │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ node-sass │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ node-sass > node-gyp > request > hawk > boom > hoek │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://nodesecurity.io/advisories/566 │ └───────────────┴──────────────────────────────────────────────────────────────┘ ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ Moderate │ Prototype pollution │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ hoek │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ > 4.2.0 < 5.0.0 || >= 5.0.3 │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ node-sass │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ node-sass > node-gyp > request > hawk > cryptiles > boom > │ │ │ hoek │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://nodesecurity.io/advisories/566 │ └───────────────┴──────────────────────────────────────────────────────────────┘ ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ Moderate │ Prototype pollution │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ hoek │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ > 4.2.0 < 5.0.0 || >= 5.0.3 │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ node-sass │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ node-sass > node-gyp > request > hawk > hoek │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://nodesecurity.io/advisories/566 │ └───────────────┴──────────────────────────────────────────────────────────────┘ ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ Moderate │ Prototype pollution │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ hoek │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ > 4.2.0 < 5.0.0 || >= 5.0.3 │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ node-sass │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ node-sass > node-gyp > request > hawk > sntp > hoek │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://nodesecurity.io/advisories/566 │ └───────────────┴──────────────────────────────────────────────────────────────┘ ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ High │ Regular Expression Denial of Service │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ string │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ No patch available │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ vuepress │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ vuepress > markdown-it-anchor > string │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://nodesecurity.io/advisories/536 │ └───────────────┴──────────────────────────────────────────────────────────────┘ ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ High │ Regular Expression Denial of Service │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ string │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ No patch available │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ vuepress │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ vuepress > markdown-it-table-of-contents > string │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://nodesecurity.io/advisories/536 │ └───────────────┴──────────────────────────────────────────────────────────────┘ found 6 vulnerabilities (4 moderate, 2 high) in 11895 scanned packages 6 vulnerabilities require manual review. See the full report for details. ``` ### Alternatives - Create custom site from scratch: + PROS: * Better control over dependencies. We're using a minor dependency that isn't updated as quickly as we'd like? Fork it and make it an internal dependency. * No more `.html` pages or placing a single file inside a folder just to get rid of `.html` * We know everything, like the Architect in the Matrix. + CONS: * Doing everything from scratch. * Don't have the benefit of merely plugging in content and going about our merry way. - Some other platform: + TBD ### Summary I'm a **huge** fan of security and my inability to ensure this project is in fact secure gets on my nerves. The (minor) usability issues with routing and other things don't help. [fastify](https://github.com/fastify/fastify) and [choo](https://github.com/choojs/choo) would be a nice combo for the next iteration of `.tech`, coupled with a simple Markdown parser. We'll see.
kauffj commented 2018-07-06 23:00:30 +02:00 (Migrated from github.com)

I hate Vuepress routing so much that that is basically a sufficient reason to nuke it if it can't be adjusted.

I hate Vuepress routing so much that that is basically a sufficient reason to nuke it if it can't be adjusted.
NetOpWibby commented 2018-07-12 23:35:12 +02:00 (Migrated from github.com)

Progress is being tracked in #121

Progress is being tracked in #121
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: LBRYCommunity/lbry.tech#119
No description provided.