小编Bit*_*itz的帖子

XXE:XDocument对XML外部实体引用的限制不当

因此,当我在应用程序上运行安全扫描时,我遇到了一个问题。事实证明,我无法防范XXE。这是显示有害代码的简短代码段:

static void Main()
        {
            string inp = Console.ReadLine();
            string xmlStr = ""; //This has a value that is much too long to put into a single post

            if (!string.IsNullOrEmpty(inp))
            {
                xmlStr = inp;
            }
            XmlDocument xmlDocObj = new XmlDocument {XmlResolver = null};
            xmlDocObj.LoadXml(xmlStr);
            XmlNodeList measureXmlNodeListObj = xmlDocObj.SelectNodes("REQ/MS/M");

            foreach (XmlNode measureXmlNodeObj in measureXmlNodeListObj)
            {
                XmlNode detailXmlNodeListObj = xmlDocObj.SelectSingleNode("REQ/DTD");
                string measureKey = measureXmlNodeObj.Attributes["KY"].Value;
                if (detailXmlNodeListObj.Attributes["MKY"].Value ==
                    measureKey) //Checking if selected MeasureKey is same 
                {
                    XmlNode filerNode = measureXmlNodeObj.SelectSingleNode("FS");

                    if …
Run Code Online (Sandbox Code Playgroud)

c# xml linq-to-xml veracode xxe

7
推荐指数
1
解决办法
1016
查看次数

使用 JQuery 填写 React 表单

因此,我正在尝试使用一些简单的代码注入来填充表单并提交它,在大多数情况下,我可以通过触发模糊事件来重新验证文本框,但在反应表单构建的情况下redux,它不会以相同的方式验证。

我尝试使用以下代码,但它不起作用:
top.jQuery('input#last-name-\\[0\\]').val('Smith').attr('value','Smith').trigger('blur');

是否有我应该触发的事件而不是输入事件?

由于在提交时触发单击事件验证失败,因此未检测到这些值,就像表单中未输入任何数据一样。

我尝试了多种触发器,包括 keyup、keydown、keypress、焦点、模糊和更改。

请注意,使用默认值不是一个选项,因为我将表单数据注入到不属于我自己的网站中。

这是 React 用于构建组件的代码:

function LastNameComponent(_ref) {
    var index = _ref.index,
        isFirstField = _ref.isFirstField,
        formatValue = _ref.formatValue;

    var minLength = 2;
    var maxLength = 80;
    return _react2.default.createElement(
        'div',
        { className: 'form--item span3' },
        _react2.default.createElement(
            'label',
            { className: 'search-label small field__icon_group' },
            _react2.default.createElement(
                'span',
                null,
                '*'
            ),
            'Last Name',
            _react2.default.createElement(_TextInput2.default, {
                id: "last-name-[" + index + "]",
                model: "searchParams.searches[" + index + "].fields.lastName",
                validators: { required: function required(value) {
                        return !value || value.length < …
Run Code Online (Sandbox Code Playgroud)

javascript jquery events reactjs redux

2
推荐指数
1
解决办法
1928
查看次数

EF Core 子元素的列表和属性之间的相交返回“ArgumentNullException”

我目前正在尝试将 ID 列表与数据库实体的子属性相交。

这样做的目的是查找所有列表 Id 与子实体“Location”中至少一个实体相匹配的所有“Form”记录。我相信 SQL 等效项将在连接表“Locations”上执行 IN。

相关元素的结构如下:(我故意省略了所有其他属性)。

public class Form
{

    [Column("FormId"), DatabaseGenerated(DatabaseGeneratedOption.Identity), Key]
    public Guid Id { get; set; }
    public virtual ICollection<Location> Locations { get; set; }
}

public class Location
{
    [Column("LocationId"), DatabaseGenerated(DatabaseGeneratedOption.Identity), Key]
    public Guid Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试执行以下操作:

var locationIdsL = locationIds.Split(',').Select(Guid.Parse).ToList();

return baseQuery.Include(x => x.Locations).Where(x => x.Locations.Select(y => y.Id).Intersect(locationIdsL).Count() == locationIdsL.Count);
Run Code Online (Sandbox Code Playgroud)

* 假设该locationIdsL变量是一个有效的 Guid 列表。

上面的代码返回以下异常:

System.ArgumentNullException:值不能为空。(参数“参数”)位于 System.Linq.Expressions.Expression.Lambda(表达式主体、字符串名称、布尔型 tailCall、IEnumerable`1 参数)位于 System.Linq.Expressions.Expression.Lambda(表达式主体、ParameterExpression[] 参数)在 Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor.ReducingExpressionVisitor.Visit(表达式表达式) 在 System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor 访问者,IArgumentProvider …

c# lambda entity-framework set-intersection entity-framework-core

2
推荐指数
1
解决办法
1342
查看次数

在 WHERE 子句中将 nvarchar 转换为 bigint 时出错,但在 SELECT 中有效

我正在努力实现以下目标:

得到的所有字段值,其中FieldValue大于100时的值被存储为一个数字。

一个值是否存储为数字的指示符由字段类型给出,这是另一个 where 子句。

我面临的问题是,当我尝试在 WHERE 语句中进行数据字段转换时,它失败了。

我跑:

SELECT FieldValue FROM CARData A
JOIN Fields B ON A.FieldId = B.FieldId
WHERE FieldTypeId = 3 AND FieldValue IS NOT NULL 
Run Code Online (Sandbox Code Playgroud)

这将返回以下预期结果:

结果

但是,如果我添加了 WHERE 子句以按值过滤:

SELECT FieldValue FROM CARData A
JOIN Fields B ON A.FieldId = B.FieldId
WHERE FieldTypeId = 3 AND FieldValue IS NOT NULL 
AND CAST(FieldValue AS BIGINT) > 100
Run Code Online (Sandbox Code Playgroud)

它抛出错误:

将数据类型 nvarchar 转换为 bigint 时出错。

我有点理解问题是什么 - 它试图将表中的所有值转换为 bigint 并且在遇到非数字值时失败。

我试图通过在第二个查询中嵌套第一个查询来解决这个问题,如下所示:

SELECT RESULT.FieldValue FROM …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server casting sql-server-2019

1
推荐指数
1
解决办法
34
查看次数