标签: whitelist

.NET HTML白名单(反xss /跨站点脚本)

我有一个常见的情况,我有用户输入使用HTML的子集(输入tinyMCE).我需要一些针对XSS攻击的服务器端保护,并且我正在寻找一个经过充分测试的工具,人们正在使用它来做这件事.在PHP方面,我看到许多像HTMLPurifier这样的库可以完成这项工作,但我似乎无法在.NET中找到任何东西.

我基本上是在寻找一个库来过滤到标签的白名单,这些标签上的属性,并使用"href"和"img:src"等"难"属性做正确的事情.

我在http://refactormycode.com/codes/333-sanitize-html上看过Jeff Atwood的帖子,但我不知道它是最新的.它对网站目前使用的内容有什么影响吗?无论如何,我不确定我是否对尝试重新输出有效输入的策略感到满意.

这篇博客文章列出了一个看起来更具吸引力的策略:

http://blog.bvsoftware.com/post/2009/01/08/How-to-filter-Html-Input-to-Prevent-Cross-Site-Scripting-but-Still-Allow-Design.aspx

此方法实际上是将HTML解析为DOM,验证它,然后从中重建有效的HTML.如果HTML解析可以合理地处理格式错误的HTML,那么很棒.如果不是,没什么大不了的 - 我可以要求格式良好的HTML,因为用户应该使用tinyMCE编辑器.在任何一种情况下,我都在重写我所知道的安全,格式良好的HTML.

问题是,这只是一个描述,没有指向实际执行该算法的任何库的链接.

这样的图书馆存在吗?如果没有,什么是一个很好的.NET HTML解析引擎?什么正则表达式应该用于执行额外的验证a:href,img:src?我错过了其他重要的东西吗?

我不想在这里重新实现一个车轮.当然有一些常用的库.有任何想法吗?

.net xss whitelist

5
推荐指数
2
解决办法
8525
查看次数

我应该在名字和姓氏中加上下划线吗?

我们有一个包含名字和姓氏字段的表单.我被要求允许下划线.我不知道任何使用下划线的sql注入,但我也不知道有人在他们的名字中有下划线.是否有充分的理由允许或不允许名称中的下划线?

编辑:我正在使用参数和服务器端验证.这是通过jQuery验证插件进行客户端验证.

编辑2:我不是故意要讨论我是否应该进行任何验证......我只是想知道是否有任何令人信服的理由接受下划线,比如我应该接受爱尔兰人或连字符.基于此,我接受了奥伦的回答.

sql-injection whitelist jquery-validate

5
推荐指数
2
解决办法
1362
查看次数

将AppEngine黑名单变为白名单

AppEngine允许定义黑名单,禁止从某些IP范围访问(http://code.google.com/appengine/docs/python/config/dos.html).

我想做的是反向:白名单,只允许从某些IP范围访问.

我不是一个网络专家,所以我希望得到一些帮助:如果我想限制从130.100.120.0到130.100.123.255的范围内的IP访问,可以使用AppEngines黑名单机制完成,或者我应该这样做在我的申请中检查?

谢谢.

python google-app-engine firewall whitelist blacklist

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

c#中的html白名单

花了大约30分钟左右的SO寻找这个问题的最终解决方案.

这个问题似乎已被问过很多次但是......

  • 大多数解决方案使用正则表
  • 有很多帖子说不应该使用常规表达来处理html.
  • 有很多答案只是提供HTMLAgilityPack(在Codeplex上)的链接,但没有关于如何使用此包来满足规定要求的真实示例.

所以我正在寻找满足以下要求的最佳解决方案.

  • 我想提供一个允许的HTML标签列表.
  • 应删除不在允许列表中的任何标记及其属性和内容.
  • 应使用属性和内容保留允许列表中的任何标记.
  • 解决方案应该处理不同的本地化 - 使用除英语之外的语言和字符集的用户是可能的.
  • [已添加]解决方案应该处理文本,例如论坛帖子而不是完整的html页面 - 因此允许使用bui等标签,但不允许脚本div等,应该删除.

我正在寻找一个C#解决方案,如果它最好使用RegEx,那么我很乐意这样做.如果现有的库可以执行此操作,我也很乐意使用它们.我会很感激一些示例代码.

我正在寻找一个确定的,经过试验和测试的解决这个问题的方法,而不是广泛的辩论+封闭的帖子等:) :)

提前致谢.

html c# regex whitelist blacklist

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

phonegap 1.3.0中的白名单状态是什么?

phonegap/callback/cordova在所有平台上都有白名单吗?它是否以相同的方式实现?

mobile callback whitelist cordova

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

Phonegap Android:如何在新的浏览器窗口中打开列入白名单的域名网址?

我正在使用Cordova 1.9 + JQM开发iOs和Android应用程序.

该应用程序从"www.example.com"中的JSON服务读取数据,因此我将此域列入cordova.xml白名单

问题是我需要在应用程序外部的新浏览器窗口中打开指向www.example.com的URL.

我试过这些:

<a href="#" onclick="navigator.app.loadUrl('http://www.example.com/external')"
   class="ui-link" rel="external" target="_blank">external</a>

<a href="#" onclick="window.open('http://www.example.com/externa')"
   class="ui-link" rel="external" target="_blank">external</a>

<a href="http://www.example.com/external"
   class="ui-link" rel="external" target="_blank">external</a>
Run Code Online (Sandbox Code Playgroud)

...但是所有这些都在webView中打开了新窗口,而不是在本机浏览器新窗口中打开.我在iOS上做了这个工作但是看不到Android的解决方案.

任何帮助,将不胜感激.谢谢!!

android whitelist cordova

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

JSON.stringify使用嵌套对象进行白名单

给出以下示例:

var test = {
    "company_name": "Foobar",
    "example": "HelloWorld",
    "address": {
        "street": "My Street 12",
        "example": "BarFoo",
        "details": "Berlin",
    }
}

console.log(JSON.stringify(test, ['company_name','address','street','example']));

// What I actually want
// console.log(JSON.stringify(test, ['company_name','address.street','address.example']));
Run Code Online (Sandbox Code Playgroud)

如何使用JSON的stringify函数正确处理嵌套对象?

由于我有巨大的JSON对象,因此嵌套对象的键与它的"父"对象相同.我想更明确地指定我的白名单.

javascript json whitelist

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

请使用新建议的params保护模型(strong_parameters)或将`protected_attributes`添加到gemfile中

当我向我的Relationship模型添加attr_accessible时发生了这种情况.

class Relationship < ActiveRecord::Base
  attr_accessible :followed_id
end
Run Code Online (Sandbox Code Playgroud)

不使用Devise或protected_attributes gem,这有什么办法?我知道在控制器中你调用一个需要和允许字段的私有方法.这也是你应该在模型中做的事吗?这里的约定是什么?

谢谢!

ruby-on-rails whitelist mass-assignment attr-accessible devise

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

白名单域认证 Laravel

我正在寻找仅允许某些域访问我的 Laravel 应用程序的最佳方法。我目前正在使用 Laravel 5.1,如果引用域不在白名单域中,我正在使用中间件进行重定向。

class Whitelist {

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */

    public function handle($request, Closure $next)
    {
        //requesting URL
        $referer = Request::server('HTTP_REFERER');

        //parse url to match base in table
        $host = parse_url($referer, PHP_URL_HOST);
        $host = str_replace("www.", "", $host);

        //Cached query to whitelisted domains - 1400 = 24 hours
        $whiteList = Cache::remember('whitelist_domains', 1400, function(){
            $query = WhiteListDomains::lists('domain')->all();
            return $query;
        });

        //Check that referring domain is …
Run Code Online (Sandbox Code Playgroud)

authentication dns middleware whitelist laravel

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

将IP列入白名单以使用Kubernetes Ingress Istio访问部署

我正在尝试将IP列入白名单以访问Kubernetes集群中的部署。

我在网上寻找了一些与此有关的文档,但我只发现了

ingress.kubernetes.io/whitelist-source-range
Run Code Online (Sandbox Code Playgroud)

允许入口授予某些IP范围的访问权限。但是,我仍然无法隔离部署。

这是入口配置YAML文件:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-internal
  annotations:
    kubernetes.io/ingress.class: "istio"
    ingress.kubernetes.io/whitelist-source-range: "xxx.xx.xx.0/24, xx.xxx.xx.0/24"
spec:
  rules:
  - host: white.example.com
    http:
      paths:
      - backend:
          serviceName: white
          servicePort: 80
Run Code Online (Sandbox Code Playgroud)

我可以从列入白名单的IP和移动电话(未在配置中列入白名单的IP)访问部署

有人使用Ingress和Istio解决了相同的问题吗?

任何帮助,提示,文档或替代配置将不胜感激。

whitelist kubernetes docker-ingress istio kubernetes-security

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