当前位置: 首页 > wzjs >正文

b2b网站建设排名医院营销策略的具体方法

b2b网站建设排名,医院营销策略的具体方法,江阴建设局网站,辽宁建设银行官方网站问题: XPath 注入是指数据从一个不可信赖数据源进入程序,用于动态构造一个 XPath 查询,获取权限信息 的访问权并更改这些信息的一种攻击方式。 例如:以下代码片段中,可动态地构建并执行一个 XPath 查询&#xf…

问题:

XPath 注入是指数据从一个不可信赖数据源进入程序,用于动态构造一个 XPath 查询,获取权限信息
的访问权并更改这些信息的一种攻击方式。
例如:以下代码片段中,可动态地构建并执行一个 XPath 查询,为指定的帐户 ID 检索电子邮件地址。
String acctID = request.getParameter("acctID");
String query = null;
if(acctID != null) {
StringBuffer sb = new StringBuffer("/accounts/account[acctID='");
sb.append(acctID);
sb.append("']/email/text()");
query = sb.toString();
}
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true);
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse("accounts.xml");
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr = xpath.compile(query);
Object result = expr.evaluate(doc, XPathConstants.NODESET);
正常情况下(例如搜索属于帐号 1 的电子邮件地址),此代码所执行的查询如下所示:
/accounts/account[acctID='1']/email/text()
如果攻击者为 acctID 输入字符串 1' or '1' = '1 ,则该查询会变成:
/accounts/account[acctID='1' or '1' = '1']/email/text()
附加条件 1' or '1' = '1 会使 where 从句永远评估为 true ,因此该查询在逻辑上将等同于一个更为简化的
查询:
//email/text()
这样就可以查询到文档中存储的所有电子邮件地址。
修复:
造成 XPath 注入的根本原因在于攻击者能够改变 XPath 查询的上下文,导致程序员期望解释为数据的
某个数值被解释为命令了。为了防止攻击者侵犯程序员的各种预设情况,可以使用白名单的方法,确保
XPath 查询中由用户控制的数值完全来自于预定的字符集合,不包含任何 XPath 元字符。如果由用户控制
的数值要求它包含 XPath 元字符,则使用相应的编码机制转义或删除这些元字符。
例如:以下代码片段中,将不可信赖的数据 acctID 转化为一个整形再用于构造 XPath 查询,避免了 XPath
注入攻击。
String acctID = request.getParameter("acctID");
String query = null;
if(acctID != null) {
Integer iAcctID = -1;
try {
iAcctID = Integer.parseInt(acctID);
}
catch (NumberFormatException e) {
throw new InvalidParameterException();
}
StringBuffer sb = new StringBuffer("/accounts/account[acctID='");
sb.append(iAcctID.toString());
sb.append("']/email/text()");
query = sb.toString();
}
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true);
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse("accounts.xml");
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr = xpath.compile(query);
Object result = expr.evaluate(doc, XPathConstants.NODESET);
http://www.dtcms.com/wzjs/224633.html

相关文章:

  • 安阳区号0372河南seo优化
  • 源码资源官网关键词推广优化排名如何
  • 网站服务器怎么做安全防护网站优化哪家好
  • 北京 网站建设企业推广网络营销
  • 上海公司做网站网络关键词排名软件
  • 品牌策划公司和品牌设计公司厦门seo排名收费
  • 深圳网站建设团队青岛网站seo诊断
  • 网站建设的税收编码厦门网站的关键词自动排名
  • 哪个素材网站比较好用网站设计费用明细
  • 盐田区网站建设网站建设方案书
  • 电子商务网站开发项目策划书搜索引擎优化的概念
  • 做视频解析网站是犯法的么微信营销平台系统
  • 有关网站建设新闻资讯南京seo排名扣费
  • 深圳高端品牌网站建设推广产品的软文怎么写
  • 中国企业500强最新排名一键优化清理
  • 厦门市建设合同备案网站百度知道客服
  • 网站建设优化石家庄媒体代发布
  • 重庆企业网站开发方案seo的主要工作内容
  • 如何做旅游攻略网站营销策划公司名称
  • 上海搜索排名优化公司北京seo费用是多少
  • 青岛做物流网站宜昌网站seo
  • wordpress 站外搜索网络营销软件
  • 祥云平台英文网站百度的广告推广需要多少费用
  • 做网站建设的网站济南优化网络营销
  • 聊城高端网站设计建设域名注册需要多少钱
  • 网站建设柳市注册城乡规划师报考条件
  • 网站建设在windos的设置搜索引擎营销的特点包括
  • 怎么样免费做网站百度广告电话号码是多少
  • 国家林业工程建设协会网站网店无货源怎么做
  • 怎么样可以做网站百度竞价登陆