小编fre*_*hbm的帖子

如何在 C 中的 libxml2 中禁用 XXE?

要求:当我将以下请求传递给我的应用程序时,

1)如何对这样的输入xml进行XML验证,这是有风险的

2) 如何在libxml2中禁用XXE,即不应该解析ENTITY字段

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY foo SYSTEM "file:///etc/issue">
]><TRANSACTION>
<FUNCTION_TYPE>LINE_ITEM</FUNCTION_TYPE>
<COMMAND>ADD</COMMAND>
<COUNTER>3</COUNTER>
<MAC>qof2EtycqT9YMcmOfKowpyXVbRpgM/7rncS3liK4JOs=</MAC>
<MAC_LABEL>P_206</MAC_LABEL>
<RUNNING_TAX_AMOUNT>0.00</RUNNING_TAX_AMOUNT>
<RUNNING_TRANS_AMOUNT>1.00</RUNNING_TRANS_AMOUNT>
<LINE_ITEMS>
<MERCHANDISE>
<LINE_ITEM_ID>1</LINE_ITEM_ID>
<DESCRIPTION>&foo;</DESCRIPTION>
<QUANTITY>1</QUANTITY>
<UNIT_PRICE>5.00</UNIT_PRICE>
<EXTENDED_PRICE>5.00</EXTENDED_PRICE>
</MERCHANDISE>
</LINE_ITEMS>
</TRANSACTION>
Run Code Online (Sandbox Code Playgroud)

据我所知,从 libxml2 版本 2.9 开始,XXE 默认情况下已被禁用。但我们目前使用的是2.7.7版本。

根据此链接XML_ENTITY_PROCESSING

Enum xmlParserOption 不应在 libxml2 中定义以下选项:

XML_PARSE_NOENT:展开实体并用替换文本替换它们 XML_PARSE_DTDLOAD:加载外部 DTD

到目前为止,我一直在使用xmlParseMemory函数来解析 XML 内存块并构建一棵树。该函数不使用任何参数来设置 xmlParserOption。

然后我更改为xmlReadMemory函数,它也执行与函数相同的操作xmlParseMemory,但采用不同的参数。

docPtr = xmlReadMemory(szXMLMsg, iLen, "noname.xml", NULL, XML_PARSE_RECOVER);
Run Code Online (Sandbox Code Playgroud)

我仍然观察到 ENTITY 字段正在被解析。有人可以帮助我吗?如果您需要更多其他信息,请告诉我。

感谢您的时间。

问候

普拉文

c libxml2 xml-parsing xxe

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

在 mysql 的实体框架中使用数学函数

我正在开发 ASP.NET MVC 应用程序,并在其中使用带有实体框架的 Mysql。但是我在执行这样的 Linq 查询时遇到了问题:

var place= dbContext.Places.FirstOrDefault(x => Math.Sqrt(x.Lat) > 0);
Run Code Online (Sandbox Code Playgroud)

我也尝试使用 SqlFunctions:

var place= dbContext.Places.FirstOrDefault(x => SqlFunctions.SquareRoot(x.Lat) > 0);
Run Code Online (Sandbox Code Playgroud)

但无论哪种方式,我都会收到“System.NotSupportedException”:

附加信息:1[System.Double] SquareRoot(System.Nullable无法将类型“System.Data.Entity.SqlServer.SqlFunctions”上的指定方法“System.Nullable 1[System.Decimal])”转换为 LINQ to Entities 存储表达式。

有什么方法可以使用平方根函数,以便将其转换为 LINQ to Entities 表达式?

c# linq asp.net-mvc entity-framework asp.net-mvc-4

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

比较2个表的值并突出显示不同的行

我需要比较两个相同但包含一些不同数据的表的值.我必须找到并强调那种差异.我怎样才能做到这一点?

<table class="TableA">
  <tr> 
    <td>Head1</td>
    <td>Some_Value</td>
  </tr>
  <tr>
    <td>Head2</td>
    <td>SomeValue</td>
  </tr>
</table>
<table class="TableB">
  <tr>
    <td>Head1</td>
    <td>Some_Value</td>
  </tr> 
  <tr>
    <td>Head2</td>
    <td>SomeValueDiffValue</td>
  </tr>
</table> 
Run Code Online (Sandbox Code Playgroud)

我需要比较这两个表并使用jquery在值单元格中突出显示diff,在上面的示例中我需要在第二个表中突出显示SomeValueButDiff

好的,我修改了Ahmet的代码:

$(".TableB tr").each(function () {
if ($(this).find("td")[1].innerHTML !=
    $(".TableA").find("td")[1].innerHTML) {
    $(this).find("td")[1].bgColor = "red";
}
Run Code Online (Sandbox Code Playgroud)

});

艾哈迈德,这对我有用.

html jquery jquery-selectors

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

如何管理空的jQuery手风琴面板?如何禁用点击手风琴标题?

我正在使用Accordionn jQuery Controls,你可以在下面找到以下网址:

手风琴:http://jqueryui.com/accordion/

问题:我们如何管理无法点击的空菜单; 示例 - 如果我在"第2部分"菜单上没有任何项目,则不应该是可点击的.当我这样做时,要么将下一个父菜单项子项设置为前一个并且失真,或者如果我只留下一个空格,<div> 则打开一个空白菜单而不是可点击.有人可以帮忙吗?

jquery-ui jquery-ui-accordion

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

Veracode目录遍历问题c#

我有这个代码将文件存储到服务器:

function void StoreFile(string inputFileName) {
   ...

   var extension = Path.GetExtension(inputFileName);
   if(extension == ".csv") {
       var fileName = string.Format("{0}_{1}{2}", Session.SessionID, new Guid(), extension);

       var dataFileServerPath = _documentService.getPath(fileName, UserProfile.UserName, UserProfile.SourceID);

       if(!string.IsNullOrEmpty(dataFileServerPath)) {
           try {
              using(FileStream dataFile = new FileStream(dataFileServerPath, FileMode.Create))  { .... }
           }
           cathc(Exception e) { ... }    
       }
    }    
    else {
        throw new NotSupportedFormatError();
    }
}
Run Code Online (Sandbox Code Playgroud)

Aftrer Veracode分析我在线获取目录遍历问题 FileStream dataFile = new FileStream(dataFileServerPath, FileMode.Create)

为什么我在那里遇到这个问题,我已检查文件扩展名是否对我的案例有效并在fileName中传递该值.这是安全问题以及如何解决这个问题?

_documentService.getPath 只需为特定用户的web.config和filename附加路径,它与用户输入无关.

c# asp.net security veracode

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

Windows Phone 8.1中带有VisualStates的DataTrigger

我正在尝试将旧的Window phone 7.5 Silverlight应用程序转换为新的WinRT Universal应用程序,我遇到了这些代码的问题:

<Style TargetType="Button">
    <Setter Property="Visibility" Value="Collapsed"/>
    <Style.Triggers>
        <DataTrigger Binding="{Binding Active}" Value="True">
            <Setter Property="Visibility" Value="Visible"/>
        </DataTrigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

我使用DataTrigger根据绑定值设置控件的可见性.

在Windows Phone 8.1 winrt应用程序中,此功能已用完.我已经尝试使用VisualStates来实现相同的功能,但我无法弄明白.任何人都可以帮助我或指导我的好榜样.我被困在这里......

datatrigger visualstates winrt-xaml windows-phone-8.1

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

为Nullabe of T检查.HasValue和.Value

我需要做一些重构,我遇到了这个:

if(LoanTerms.RateIncreasable.HasValue && LoanTerms.RateIncreasable.Value) { ... }
Run Code Online (Sandbox Code Playgroud)

并且LoanTerms.RateIncreasable是类型System.Nullable<bool>

所以我想知道我需要.HasValue检查一下吗?null在if语句中会被视为false吗?

c#

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

.NET如何在Active Directory中搜索和获取用户列表

我以前从未编程过Active目录和MVC,需要一些建议.

我正在使用以下代码进行搜索,并获取视图中的用户列表.我不知道我是否走在正确的轨道上,如何在cshtml的列表视图中获取它?

   public ActionResult Find()
    {
        DirectoryEntry entry = new DirectoryEntry(
                      "LDAP://example..");

        DirectorySearcher searcher;
        SearchResultCollection results;

        searcher = new DirectorySearcher(entry);

        searcher.Filter = "(&(objectClass=user)(displayname=*))";
        searcher.SearchScope = SearchScope.Subtree;

        using (searcher)
        {
            results = searcher.FindAll();

            foreach (SearchResult result in results)
            {
               string searchOK = result.Properties["displayname"][0].ToString();
               objects.Add(searchOK);
            }
        }
        return View();
    }
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc active-directory

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

ZF2中的Ajax分页?

我是新手,ZF2但我做了一些项目ZF.我没有使用任何ajax分页ZF.但现在我需要ajax分页ZF2.我怎么做?

pagination zend-framework2

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

哈希修改问题

我正在打印哈希[ print Dumper($myhash); ],如下所示:

$VAR1= {
  'context_verdict' => 'Failed',
  'logfile' => 'abc',
  'Block_000' => {
     'Element_0032' => {
         'e_verdict' => 'FAILED',
         'e_name' => 'Element_0032',
         'e_log' => 'This is really bad...',
         'e_ref' => 'Good'
     }
  }
Run Code Online (Sandbox Code Playgroud)

现在我想将logfile的值从abc更改为def.怎么实现这个?

我写

$myhash{'$VAR1'}->{'logfile'}="def";
Run Code Online (Sandbox Code Playgroud)

但它不起作用!! 它仍然是"abc".

perl hash

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