safe
对于要调用的任何代码(甚至是恶意代码)完全无害。可以像其他托管代码一样使用。示例:获得一天中的时间。
native
安全中立;即,需要非托管代码权限才能调用的非托管代码。将检查安全性,这将阻止未经授权的调用方。
unsafe
忽略安全且具有潜在危险性的非托管代码入口点。开发人员在使用这种不安全代码时应十分谨慎,同时应确保其他保护措施已就位,以避免安全漏洞。当该关键字重写安全系统时,开发人员必须完全负责。
用户输入用户数据是指任何类型的输入(来自 Web 请求或 URL 的数据、对 Microsoft Windows 窗体应用程序控件的输入等等),它可以对代码造成负面影响,因为这些数据通常被直接用作调用其他代码的参数。这种情况与恶意代码使用陌生参数调用您的代码相似,应当采取相同的预防措施。用户输入实际上更难保证安全,这是因为没有堆栈帧对出现的潜在不受信任数据进行跟踪。
在需要查找的安全性错误中,这些错误是最细微和最难找到的,这是因为尽管它们可以存在于表面上与安全无关的代码中,但它们却是将有问题的数据传递给其他代码的通路。要找到这些错误,请跟踪任何类型的输入数据,想象可能值的范围,并考虑查看该数据的代码是否可以处理所有这些情况。您可以通过范围检查和拒绝代码无法处理的所有输入来修复这些错误。
涉及用户数据的某些常见错误包括:
•在客户端上,服务器响应中的所有用户数据都会运行在服务器站点的上下文中。如果 Web 服务器取得用户数据并将它插入返回的 Web 页中,则它可能(例如)包括 <script> 标记,并且运行时好像来自服务器。
•请记住,客户端可以请求任何 URL。
•考虑那些复杂或无效的路径:
•..\,非常长的路径。
•使用通配符 (*)。
•令牌扩展 (%token%)。
•具有特殊含义的陌生格式的路径。
•
文章来源于领测软件测试网 https://www.ltesting.net/