如何获取 veracode 漏洞报告的详细信息?
我是一个流行的 JS 库Ramda的维护者,我们最近收到一份报告,称该库存在原型污染漏洞。这可以追溯到veracode 报告,其中写道:
ramda 很容易受到原型污染。攻击者可以通过该
_curry2函数将属性注入到现有的构造原型中,并修改诸如__proto__、constructor、 和 之类的属性prototype。
我明白他们所说的原型污染是什么。snyk 的 writeuplodash.merge中有一个很好的解释。Ramda 的设计有所不同,明显类似的 Ramda 代码不会受到此类漏洞的影响。这并不意味着 Ramda 的任何部分都不受其约束。但该报告没有包含任何细节,没有代码片段,也没有办法质疑他们的发现。
他们描述的细节显然是错误的。 _curry2不可能会遇到这个问题。但由于该函数被用作许多其他函数的包装器,因此报告者的误解可能隐藏着真正的漏洞。
有没有办法获取此错误报告的详细信息?演示问题的代码片段?任何事物?我已经填写了他们的联系表。答案可能仍在到来,因为才 24 小时前,但我并没有屏住呼吸——这似乎主要是一份销售表格。我所做的所有搜索都提供了有关如何使用其安全工具的信息,但几乎没有提供有关如何创建自定义报告的信息。我在 CVE 数据库中找不到这个。
我已经在一个名为Ramda的Javascript FP库上工作了一段时间,我在命名方面遇到了一些问题.(你听说过这条旧线,对吗?"计算机科学只有两个难题:缓存失效,命名事物和一个一个错误.")
在这个库中,(几乎)多个参数的每个函数都会自动计算.这适用于大多数用例.但是有一些问题是一些函数是非交换二元运算符.问题在于,英语名称往往意味着与应用currying时所发生的不同.例如,
var div10 = divide(10);
Run Code Online (Sandbox Code Playgroud)
听起来它应该是一个将其参数除以10的函数.但实际上它将其参数分为 10,如果你看一下这个定义就很清楚了:
var divide = curry(function(a, b) {
return a / b;
});
Run Code Online (Sandbox Code Playgroud)
所以相反的预期:
div10(50); //=> 5 // NO!!
Run Code Online (Sandbox Code Playgroud)
事实上,你得到了
div10(50); //=> 0.2 // Correct, but surprising!
Run Code Online (Sandbox Code Playgroud)
我们通过记录从人们的预期可能的差别,并创建处理这个问题divideBy,这只是flip(divide)和subtractN,这是flip(subtract).但是我们还没有找到一个很好的等价函数,例如lt:
R.lt = curry(function(a, b) {
return a < b;
});
Run Code Online (Sandbox Code Playgroud)
或它的表兄弟lte,gt和gte.
我自己的直觉就是这样
map(lt(5), [8, 6, 7, 5, 3, 0, 9]);
//=> [false, false, false, false, …Run Code Online (Sandbox Code Playgroud) 根据标题,
是否可以在markdown中的表格中放置一个列表?
我试图搜索它但找不到任何东西.
表格如下:
Fruit |Color
---------|----------
Apples |Red
Pears |Green
Run Code Online (Sandbox Code Playgroud)
和列表是类似的
我有一个寻找名字的功能.
我一直在用Javascript 构建一个新的函数式编程库,最近我添加了一个对我有用的新函数.我命名了它,useWith但我想知道它是否是功能程序员以不同名称已知的功能.
该函数与之相关compose,因为它返回一个新函数,它结合了几个现有函数,但方式略有不同compose.它接收的第一个参数被挑选出来; 其余部分均匀处理.当调用返回的函数时,参数将分别传递给其余每个函数,结果以及任何未配对的参数将被发送到第一个函数,然后返回其结果.因此,如果只使用两个函数调用它,并且如果结果函数传递一个参数,则这与compose完全等效.但它有多个参数的附加功能.
我想要这个函数的原因是我实现了类似projectMichal Fogus在Functional Javascript中提供的函数,project类似于Codd的类似Javascript对象的数组,类似于SQL的select动词.写这样很容易:
var project = curry(function(keys, table) {
return map(pick(keys), table);
});
// Used like this:
var kids = [{name: 'Bob', age: 3, eyes: 'blue', hair: 'brown'},
{name: 'Sue', age: 5, eyes: 'hazel', hair: 'blonde'}];
project(['name', 'eyes'], kids);
//=> [{name: 'Bob', eyes: 'blue'}, {name: 'Sue', eyes: 'hazel'}]
Run Code Online (Sandbox Code Playgroud)
但我真的想以无点的方式实现它.但当然这不起作用:
var project = compose(map, pick); // NO!
Run Code Online (Sandbox Code Playgroud)
...因为没有设施通过第二个参数, …
如何将自定义组件的输出保存回 React Admin 模型?
我有一个带有一个自定义组件的表单,该组件是 CodeMirror 字段。对其他所有内容的更改均正确保存。但是我的 CodeMirror 字段虽然可以作为编辑器正常工作并按我想要的方式配置,但不会保存更改。
我是 React-Admin 的新手,并且对 React 的经验有限,所以我想我错过了一些基本的东西。
const handleChange = (field) => (val, evt) => {
// I reach here with `field` set to the instance of MyEditField, with `val`
// set to the updated editor value, and `evt` the CodeMirror event
// But now how do I update the underlying record?
// The following will update the stored copy, but doesn't mark it as a change
// to be saved by the …Run Code Online (Sandbox Code Playgroud) 我有一个对象数组,如下所示:
[
{
"_id": "5b09cc3495cb6c0487f1166b",
"name": "ccc",
"email": "ccc@gmail.com",
"phone": "790467522",
"kidsNo": "1",
"adultsNo": "1",
"fullDate": "2018/5/1",
"year": "2018",
"month": "5",
"day": "1",
"chosenHour": "11:00",
"chosenRoom": "x",
"__v": 0
},
{
"_id": "5b09cc6095cb6c0487f1166c",
"name": "asd",
"email": "asd@asd.pl",
"phone": "790467522",
"kidsNo": "2",
"adultsNo": "3",
"fullDate": "2018/5/1",
"year": "2018",
"month": "5",
"day": "1",
"chosenHour": "12:00",
"chosenRoom": "x",
"__v": 0
},
{
"_id": "5b0b1560c7b4fd0c33b2d52e",
"name": "dddd",
"email": "dddd@ddd.pl",
"phone": "123123112",
"kidsNo": "2",
"adultsNo": "1",
"fullDate": "2018/5/17",
"year": "2018",
"month": "5",
"day": "17",
"chosenHour": …Run Code Online (Sandbox Code Playgroud)