如何避免 Winforms c# 中的 Reflected_xss_all_clients 漏洞

问题描述 投票:0回答:2

目前,我正在从事一个Winforms项目。 当我通过 CheckMarx 扫描我的 Winforms 应用程序时,我遇到了多个

Reflected_xss_all_clients
漏洞。 我知道Winforms 中没有脚本。
XSS
是一种网络威胁,但可能有某种方法可以在扫描过程中修复这些威胁。

这是错误代码第 1 部分:

private void UpdatePreviewValue()
  {
     try
     {
        // Set the preview value
        if (txtFieldValue.Text != string.Empty)
        {
           // Show the preview value
           lblPreview.Text = "(" + txtFieldValue.Text + ")";
        }
        else
        {
           // Show that there is no field value
           lblPreview.Text = Properties.Resources.Std_Txt_Fld_NoFieldValue;
        }
     }
     catch (Exception ex)
     {
        frmErrorHandler.ShowDataError(Properties.ErrorStrings.ErrorTitle_SrcFldCtlInteger_UpdatePreviewValue, DataErrorImageConstants.Exclamation, ex);
     }
  }

在上面的代码部分,

lblPreview.Text = "(" + txtFieldValue.Text + ")";
行抛出了
Reflected_xss_all_clients
漏洞。

这是错误代码第 2 部分:

      /// <summary>
      /// Method to copy an existing node for moving inside a grid
      /// </summary>
      /// <param name="rowToCopy">GridRow to copy</param>
      /// <returns>GridRow</returns>
      private GridRow CopyGridRow(GridRow rowToCopy)
      {
         GridRow newRow = gridCategories.NewRow();
         newRow.Tag = rowToCopy.Tag;
         newRow.Cells[0].Text = rowToCopy.Cells[0].Text;
         newRow.Cells[0].Image = rowToCopy.Cells[0].Image;
         newRow.Cells[1].Text = rowToCopy.Cells[1].Text;

         if (rowToCopy.HasRows)
         {
            foreach (GridRow nestedRow in rowToCopy.NestedRows)
            {
               newRow.NestedRows.Add(CopyGridRow(nestedRow));
            }
         }

         return newRow;
      }

在上面的代码部分中,

newRow.Cells[0].Text = rowToCopy.Cells[0].Text;
newRow.Cells[1].Text = rowToCopy.Cells[1].Text;
行抛出了
Reflected_xss_all_clients
漏洞。

这是错误代码第 3 部分:

  /// <summary>
  /// Method used to add a new discrete value to the listview
  /// </summary>
  private void AddDiscreteValue()
  {
     // check we have an entry to add
     if (txtDiscreteValue.Text != "")
     {
        SetDiscreteValue(txtDiscreteValue.Text, true, null, false);
     }
  }

在上面的代码部分,

SetDiscreteValue(txtDiscreteValue.Text, true, null, false);
行抛出了针对
txtDiscreteValue.Text

的Reflected_xss_all_clients漏洞

如果可能,请建议任何补救方法。

c# winforms security xss checkmarx
2个回答
0
投票

您可以在 ASP.NET Core 中使用 HtmlSanitizer NuGet 包。


-1
投票

Checkmarx 将跟随输入中的字符串进行使用。有时它会识别出未 fillterd 传输到前端的变量作为 XSS。

对于我来说,我总是忽略 Checkmarx 报告的 XSS。也许您可以在使用字符串变量之前使用填充函数。像这样

     txtFieldValue.Text=cleanXSS(txtFieldValue.Text) 

关于cleanXSS(),google后可以找到很多例子

© www.soinside.com 2019 - 2024. All rights reserved.