目前,我正在为一个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漏洞
如果可能,请建议任何补救方法。
Checkmarx将跟踪从输入到使用的字符串。有时它会识别一个未被填充的变量,并将其作为XSS传递到前端。
至于我,我总是忽略Checkmarx报告的XSS。也许你可以在使用字符串变量之前使用一个过滤器函数。这样的
txtFieldValue.Text=cleanXSS(txtFieldValue.Text)
关于cleanXSS(),你可以在google上找到很多例子。