问题列表 - 第48774页

在Python中允许Markdown,同时防止XSS攻击的最佳做法?

我需要让用户将Markdown内容输入我的Web应用程序,该应用程序具有Python后端.我不想不必要地限制他们的条目(例如,不允许任何 HTML,这违背了Markdown的精神和规范),但显然我需要防止跨站点脚本(XSS)攻击.

我不能成为第一个有这个问题的人,但是没有看到所有关键词"python","Markdown"和"XSS"的任何SO问题,所以这里就是这样.

使用Python库处理Markdown并防止XSS攻击的最佳实践方法是什么?(支持PHP Markdown Extra语法的奖励点.)

python xss markdown sanitization

26
推荐指数
1
解决办法
5366
查看次数

如何在Node.js中退出

用于退出的命令是什么?(即终止Node.js进程)

node.js

1762
推荐指数
12
解决办法
84万
查看次数

如何禁用Checkbox?

在Java上,如果选中复选框A,有没有办法禁用复选框(称之为B).

当我说禁用时,用户无法检查它..它是setEditable(false)还是什么的.

java swing jcheckbox

2
推荐指数
2
解决办法
3万
查看次数

使用NHibernate 3.0.0时战斗笛卡尔积(x-join)

我的数学很差,但我很清楚笛卡尔的产品是什么.
这是我的情况(简化):

public class Project{
 public IList<Partner> Partners{get;set;}
}
public class Partner{
 public IList<PartnerCosts> Costs{get;set;}
 public IList<Address> Addresses{get;set;}
}
public class PartnerCosts{
 public Money Total{get;set;}
}
public class Money{
 public decimal Amount{get;set;}
 public int CurrencyCode{get;set;}
}
public class Address{
 public string Street{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我的目标是有效地加载整个项目.

问题当然是:

  • 如果我试图加载合作伙伴及其成本,查询返回大量行
  • 如果我懒加载Partner.Costs,db会收到垃圾邮件请求(比第一种方法快一点)

正如我所读到的,常见的解决方法是使用MultiQueries,但我只是不明白.
所以我希望通过这个确切的例子来学习.

如何有效加载整个项目?

Ps我正在使用NHibernate 3.0.0.
请不要用hql或字符串形式的标准api方法发布答案.

nhibernate cartesian-product eager-loading

32
推荐指数
2
解决办法
8284
查看次数

MonoTouch WCF REST错误创建频道

我正在尝试通过MonoTouch访问WCF REST服务.我无法使用ChannelFactory,因为在MonoTouch中无法生成动态代码,并且因为我正在访问RESTful服务,所以我也无法使用svcutil来构建客户端类.

这让我手动构建客户端类.我已经走了很远,但遇到了问题,这是代理类的代码:

public class AuthenticationClient : System.ServiceModel.ClientBase<IAuthenticationService>, IAuthenticationService
{
    public AuthenticationClient(Binding binding, EndpointAddress baseAddress) : base(binding, baseAddress)
    { } 

    public AuthenticationResult AuthenticateUser (AccountCredentials credentials)
    {
        return base.Channel.AuthenticateUser(credentials);
    }

    protected override IAuthenticationService CreateChannel ()
    {
        // This method must be overriden in MonoTouch to prevent using a ChannelFactory
        return new AuthenticationChannel(this);
    }

    private class AuthenticationChannel : ChannelBase<IAuthenticationService>, IAuthenticationService
    {
         public AuthenticationChannel(System.ServiceModel.ClientBase<IAuthenticationService> client) : 
            base(client)
        { }

        public AuthenticationResult AuthenticateUser (AccountCredentials credentials)
        {
            object[] _args = new object[1];
            _args[0] = credentials; …
Run Code Online (Sandbox Code Playgroud)

rest mono wcf channelfactory xamarin.ios

5
推荐指数
0
解决办法
1118
查看次数

C#:拆分字符串并将结果分配给多个字符串变量

我有一个字符串,其中有几个字段由特定字符分隔,如下所示:

A,B,C

我想在逗号中拆分字符串,并将每个结果字段分配给它自己的字符串变量.在Perl中我可以像这样优雅地做到这一点:

my ($varA, $varB, $varC) = split (/,/, $string);
Run Code Online (Sandbox Code Playgroud)

在C#中实现相同结果的最简单,最优雅的方法是什么?

我知道我可以分成一个数组:

string[] results = string.Split(',');
Run Code Online (Sandbox Code Playgroud)

但是我必须通过他们的索引访问字段,例如结果[2].这很难阅读并且容易出错 - 考虑没有3个30个字段.出于这个原因,我更喜欢将每个字段值放在自己的命名变量中.

c# string perl split

12
推荐指数
2
解决办法
2万
查看次数

C++中方法返回类型和修饰符的顺序是否重要?

我遇到的情况与我目前对C++方法的理解相冲突.

我正在通过Ivor Horton的"Beginning Visual C++ 2010"(Wrox出版社).在页449,示例8_03,方法定义为:

double Volume() const {
    return m_Length * m_Width * m_Height;
}
Run Code Online (Sandbox Code Playgroud)

我将修饰符重新排列为:

double **const** Volume() {
    return m_Length * m_Width * m_Height;
}
Run Code Online (Sandbox Code Playgroud)

从我的C#和Java背景来看,我曾经期望const的位置无关紧要,但是在编译时我收到了错误:

error C2662: 'CBox::Volume' : cannot convert 'this' pointer from 
             'const CBox' to 'CBox &'
Run Code Online (Sandbox Code Playgroud)

当我将订单退回到Ivor拥有它的方式时,错误消失了.

订单实际上是否有所作为,这不是一些奇特的错误?如果订单确实重要,那么如何记住正确的位置?

谢谢,

斯科特

c++ visual-c++

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

当您有很多选项时,GUI替代<select>

一个<select>可能适合选择3-15个简单项目,但你如何处理15-100 +?

最简单的选择是只有一个<select>带有很多<option>s 的平原,但它不是非常用户友好.有很多滚动,可能很难找到你正在寻找的选项.好处是您可以(可能使用滚动)查看您拥有的所有选项.

更高级的选项是使文本字段具有自动完成功能.用户输入一两个字母,然后您可以选择搜索结果.它可以让您更轻松地找到您正在寻找的选项 - 如果您知道自己寻找什么.缺点是用户无法看到所有选项.

更高级的选项是构建一个"搜索,列表和选择"小部件,默认显示X项,但允许您搜索.这种方法的一个优点是我可以允许搜索多个属性,而不仅仅是要选择的项目的名称.

  1. 您在这些情况下部署了哪些解决方案?
  2. 有一个我应该知道的jQuery插件吗?

html javascript css jquery user-interface

12
推荐指数
1
解决办法
6395
查看次数

堆栈是如何初始化的?

当进程请求内存并且操作系统向进程提供一些新页面时,内核应该初始化页面(例如,使用零),以避免显示另一个进程使用的可靠数据.当进程启动并接收一些内存时也是如此,例如堆栈段.

当我在Linux中执行以下代码时,结果是大部分已分配的内存确实为0,但堆栈底部大约3-4 kB(数组的最后一个元素,最高地址)包含随机数.

#include <cstdlib>
#include <iostream>
using namespace std;

int main()
{
    int * a = (int*)alloca(sizeof(int)*2000000);
    for(int i = 0; i< 2000000; ++i)
        cout << a[i] << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)
  1. 为什么它也没有设置为零?
  2. 可能是因为它被这个过程重用了吗?
  3. 如果是,那么早期使用那些3-4 kB内存的初始化代码是不是?

c c++ linux

15
推荐指数
3
解决办法
2270
查看次数

在iOS中加载非延迟图像

我正在尝试在后台线程中加载UIImages,然后在iPad上显示它们.但是,当我将imageViews的视图属性设置为图像时,会出现断断续续的情况.我很快发现iOS上的图像加载是懒惰的,并且在这个问题中找到了部分解决方案:

在UI线程上懒洋洋地加载CGImage/UIImage会导致口吃

这实际上会强制图像加载到线程中,但在显示图像时仍然存在断断续续的情况.

你可以在这里找到我的示例项目:http://www.jasamer.com/files/SwapTest.zip(编辑:修复版),检查SwapTestViewController.尝试拖动图片以查看口吃.

我创建的测试代码是断断续续的(forceLoad方法是我从上面发布的堆栈溢出问题中获取的方法):

NSArray* imagePaths = [NSArray arrayWithObjects:
                       [[NSBundle mainBundle] pathForResource: @"a.png" ofType: nil], 
                       [[NSBundle mainBundle] pathForResource: @"b.png" ofType: nil], nil];

NSOperationQueue* queue = [[NSOperationQueue alloc] init];

[queue addOperationWithBlock: ^(void) {
    int imageIndex = 0;
    while (true) {
        UIImage* image = [[UIImage alloc] initWithContentsOfFile: [imagePaths objectAtIndex: imageIndex]];
        imageIndex = (imageIndex+1)%2;
        [image forceLoad];

        //What's missing here?

        [self performSelectorOnMainThread: @selector(setImage:) withObject: image waitUntilDone: YES];
        [image release];
    }
}];
Run Code Online (Sandbox Code Playgroud)

我知道可以避免口吃的原因有两个:

(1)Apple可以在照片应用中加载图像而不会出现断断续续的情况

(2)在上述代码的此修改版本中,placeholder1和placeholder2已显示一次后,此代码不会导致断断续续:

    UIImage* placeholder1 = …
Run Code Online (Sandbox Code Playgroud)

objective-c ios

39
推荐指数
3
解决办法
2万
查看次数