-
Notifications
You must be signed in to change notification settings - Fork 5.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
URL modules and security #3654
Comments
You are talking about few different things here. First, for security audits, I believe that I used Snyk before there was Second, to search for modules we could have multiple search engines with different features with no need to have a centralized one. Also remember that not all Node modules are on npm. Some are on GitHub and can be installed with Also, there are services like GitHub Packages: https://github.com/features/packages that let you publish Node modules in places other than npm so even in Node npm is not the only place to sarch for packages. It may be the biggest one right now, just like For the package information tool, anyone can write a tool like that. All data is in: https://github.com/denoland/deno_website2/blob/master/src/database.json |
@Chrisstar56 https://deno.land/x provides a registry for all kinds of modules (with search). Is there a concrete feature you are proposing? Otherwise it sounds like this issue can be closed. |
I do think there is one issue that deno is not able to solve currently, that npm modules can.
Ignoring the issue of actually discovering security flaws in packages for a moment, there is still the matter of discovering where a vulnerable package is used within a project, and then updating it. With a npm package-lock.json file, it is easy to see which toplevel packages have security vulnerabilities, or more often, dependencies with security flaws. If I see that lodash has a recent security bug, I can run npm ls lodash
[email protected] /Users/andrew/Code/scratchwork/scrape-pages
├─┬ @microsoft/[email protected]
│ └── [email protected]
├─┬ @typescript-eslint/[email protected]
│ └─┬ @typescript-eslint/[email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ ├── [email protected] deduped
│ └─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped then if I know that the vulnerability exists in Correct me if Im wrong, but I dont believe there is a to update a nested module inside deno. I know that |
@andykais You can't, the dependencies of your libraries are out of your reach (that's why things like peer-dependencies cause no trouble in Deno). What you could do is fork the code of the library (eg: fork it in GitHub) and then import the library from your fork instead of the main source. This might sound like a troublesome process for something as simple as updating a library, but is definitely safer than changing the peer version and hope the library you use follows Semver. This also helps us kind of push forward abandoned libraries in a way NPM couldn't. |
@Soremwar thats fair enough, I understand the philosophies are different. I just wanted to lay out the tradeoffs between node modules and deno modules |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Nothing actionable here. Discussions like these are better suited for https://github.com/denoland/deno/discussions, or https://discord.gg/deno |
Please correct me if I am wrong, but it is still a mystery to me how “raw URL imports“ can solve the problem of duplicate or insecure dependencies. Let’s assume the following scenario:
How can I prevent that C is duplicated in my project? npm solves this problem through a deeply nested package-lock-file, to ensure that dependencies are both deduplicated and securely locked with hashes. |
I want to get started using Deno but either I misunderstood some core concepts or this really an issue. From what I understand Deno loads all modules on first import and then caches them indefinitely (until you force a reload). My question now is, without some kind of package manager, how can Deno insure quick security updates in modules. Is this even possible without some kind of central authority?
Maybe Deno should think about the option of providing a package information tool (customizable source, but by default deno.land?). Also some kind of option to search for packages would be great. With npm I can just search by keywords and will pretty quickly find what I need.
The text was updated successfully, but these errors were encountered: