Security News
New Python Packaging Proposal Aims to Solve Phantom Dependency Problem with SBOMs
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
Don't stuff things into objects. Use a dict
instead.
You're probably used to stuffing things into objects:
var hash = {};
hash["foo"] = "bar";
console.log("foo" in hash ? hash["foo"] : "not there"); // "bar"
However this doesn't always work, because your naïve hashes inherit from
Object.prototype
:
var hash = {};
console.log("hasOwnProperty" in hash); // true!
Even worse, the magic __proto__
property can really ruin your day:
var hash = {};
var anotherObject = { foo: "bar" };
hash["__proto__"] = anotherObject;
console.log("foo" in hash); // true!!
console.log("__proto__" in hash); // false!!!
Usually you're smart enough to avoid silly key names like "hasOwnProperty"
, "__proto__"
, and all the rest. But
sometimes you want to store user input in your hashes. Uh-oh…
dict
Is the SolutionJust do an npm install dict
and you're good to go:
var dict = require("dict");
var d = dict();
d.set("foo", "bar");
console.log(d.get("foo", "not there")); // "bar"
console.log(d.has("hasOwnProperty")); // false :)
var anotherObject = { baz: "qux" };
d.set("__proto__", anotherObject);
console.log(d.has("baz")); // false :)
console.log(d.has("__proto__")); // true :)
get
, set
, has
, delete
, and a size
property.get
accepts a second argument as a fallback for if the key isn't present (like Mozilla's WeakMap
).TypeError
.npm test
awaits you.Map
if you want more than just strings for your keys.FAQs
A lightweight but safe dictionary, for when Object won't cut it
The npm package dict receives a total of 537 weekly downloads. As such, dict popularity was classified as not popular.
We found that dict demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
Security News
Socket CEO Feross Aboukhadijeh discusses open source security challenges, including zero-day attacks and supply chain risks, on the Cyber Security Council podcast.
Security News
Research
Socket researchers uncover how threat actors weaponize Out-of-Band Application Security Testing (OAST) techniques across the npm, PyPI, and RubyGems ecosystems to exfiltrate sensitive data.