问题列表 - 第382页

防止命令行注入攻击

我们目前正在构建一个执行许多外部工具的应用程序.我们经常要将用户输入我们系统的信息传递给这些工具.

显然,这是一场等待发生的大安全噩梦.

遗憾的是,我们还没有在.NET Framework中找到执行命令行程序的任何类,同时提供与IDbCommand对象为数据库执行的注入攻击相同的防范.

现在,我们正在使用一个非常原始的字符串替换,我怀疑它是不够的:

protected virtual string Escape(string value)
{
      return value
        .Replace(@"\", @"\\")
        .Replace(@"$", @"\$")
        .Replace(@"""", @"\""")
        .Replace("`", "'")
      ;
}
Run Code Online (Sandbox Code Playgroud)

你们做了什么来防止命令行注入攻击?我们计划实现一个非常严格的正则表达式,只允许一小部分字符通过,但我想知道是否有更好的方法.

一些澄清:

  • 其中一些工具没有我们可以编程的API.如果他们这样做了,我们就不会遇到这个问题.
  • 用户不选择要执行的工具,他们输入我们选择使用的工具的元数据(例如,将诸如版权声明之类的元数据注入目标文件中).

security command-line code-injection

9
推荐指数
1
解决办法
7457
查看次数

JINI完全活跃了吗?

我与之交谈过的每个人都知道(知道)有关它的声称,这是自切片面包以来最伟大的事情.为什么会失败?或者,如果它没有失败,谁现在正在使用它?

java jini

6
推荐指数
2
解决办法
1930
查看次数

有人可以在Python中解释__all__吗?

我越来越多地使用Python,并且我一直__all__在不同的__init__.py文件中看到变量集.有人可以解释这是做什么的吗?

python syntax namespaces

873
推荐指数
10
解决办法
26万
查看次数

为什么在生成javadoc时会出现ClassCastException?

我正在使用ant生成javadocs,但一遍又一遍地得到这个例外 - 为什么?

我正在使用JDK版本1.6.0_06.

[javadoc] java.lang.ClassCastException: com.sun.tools.javadoc.ClassDocImpl cannot be cast to com.sun.javadoc.AnnotationTypeDoc
  [javadoc]     at com.sun.tools.javadoc.AnnotationDescImpl.annotationType(AnnotationDescImpl.java:46)
  [javadoc]     at com.sun.tools.doclets.formats.html.HtmlDocletWriter.getAnnotations(HtmlDocletWriter.java:1739)
  [javadoc]     at com.sun.tools.doclets.formats.html.HtmlDocletWriter.writeAnnotationInfo(HtmlDocletWriter.java:1713)
  [javadoc]     at com.sun.tools.doclets.formats.html.HtmlDocletWriter.writeAnnotationInfo(HtmlDocletWriter.java:1702)
  [javadoc]     at com.sun.tools.doclets.formats.html.HtmlDocletWriter.writeAnnotationInfo(HtmlDocletWriter.java:1681)
  [javadoc]     at com.sun.tools.doclets.formats.html.FieldWriterImpl.writeSignature(FieldWriterImpl.java:130)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.builders.FieldBuilder.buildSignature(FieldBuilder.java:184)
  [javadoc]     at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
  [javadoc]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  [javadoc]     at java.lang.reflect.Method.invoke(Method.java:597)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.builders.FieldBuilder.invokeMethod(FieldBuilder.java:114)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBuilder.java:90)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.builders.AbstractMemberBuilder.build(AbstractMemberBuilder.java:56)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.builders.FieldBuilder.buildFieldDoc(FieldBuilder.java:158)
  [javadoc]     at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
  [javadoc]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  [javadoc]     at java.lang.reflect.Method.invoke(Method.java:597)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.builders.FieldBuilder.invokeMethod(FieldBuilder.java:114)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBuilder.java:90)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.builders.AbstractMemberBuilder.build(AbstractMemberBuilder.java:56)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.builders.ClassBuilder.buildFieldDetails(ClassBuilder.java:301)
  [javadoc] …
Run Code Online (Sandbox Code Playgroud)

java ant javadoc classcastexception

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

有没有办法重新填充Html Select的选项而不触发Change事件(使用jQuery)?

我有多个选择:

<select id="one">
  <option value="1">one</option>
  <option value="2">two</option>
  <option value="3">three</option>
</select>
<select id="two">
  <option value="1">one</option>
  <option value="2">two</option>
  <option value="3">three</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我想要的是从第一个选择中选择"一个",然后从第二个选项中删除该选项.然后,如果你从第二个中选择"两个",我希望从第一个中删除一个.

这是我目前的JS:

$(function () {
    var $one = $("#one");
    var $two = $("#two");

    var selectOptions = [];
    $("select").each(function (index) {
        selectOptions[index] = [];
        for (var i = 0; i < this.options.length; i++) {
            selectOptions[index][i] = this.options[i];
        }
    });

    $one.change(function () {
        var selectedValue = $("option:selected", this).val();
        for (var i = 0; i < selectOptions[1].length; i++) {
            var exists = false;
            for …
Run Code Online (Sandbox Code Playgroud)

javascript jquery dom html-select

9
推荐指数
1
解决办法
1398
查看次数

C#switch语句限制 - 为什么?

在编写switch语句时,在case语句中可以打开的内容似乎存在两个限制.

例如(是的,我知道,如果你正在做这种事情,这可能意味着你的面向对象(OO)架构是不确定的 - 这只是一个人为的例子!),

  Type t = typeof(int);

  switch (t) {

    case typeof(int):
      Console.WriteLine("int!");
      break;

    case typeof(string):
      Console.WriteLine("string!");
      break;

    default:
      Console.WriteLine("unknown!");
      break;
  }
Run Code Online (Sandbox Code Playgroud)

这里switch()语句失败,带有'一个预期的整数类型的值',case语句失败并带有'a expected value is expected'.

为什么会有这些限制,以及基本理由是什么?我看不出有任何理由switch语句具有只能屈从于静态分析,为什么在接通的值必须是完整的(即原语).理由是什么?

c# switch-statement

136
推荐指数
8
解决办法
10万
查看次数

你制作了什么重要的设计文物?

在软件开发生命周期中,您会生成哪些基本的设计工件?是什么让它们对你的实践至关重要?

我目前正在进行的项目已经生产了8年多.此Web应用程序在此期间得到了积极的增强和维护.虽然我们已经制定了基于CMMI的政策和流程,但我们的部分实践得到了很好的定义,但设计阶段在很大程度上被忽视了.最好的做法,有人吗?

artifacts

4
推荐指数
2
解决办法
9956
查看次数

Java代表?

Java语言是否具有委托功能,类似于C#如何支持委托?

java delegates

189
推荐指数
6
解决办法
23万
查看次数

Windows 窗体应用程序性能

我的应用程序表面有许多控件,并且在运行时动态添加了更多控件。

尽管我使用选项卡来限制显示的控件数量,并且也使用双缓冲,但在必须重绘(调整大小、最大化等)时它仍然闪烁和卡顿。

您有哪些提高 WinForms 应用程序性能的技巧和窍门?

performance winforms

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

显式vs隐式SQL连接

在显式vs隐式内连接中是否存在效率差异?例如:

SELECT * FROM
table a INNER JOIN table b
ON a.id = b.id;
Run Code Online (Sandbox Code Playgroud)

SELECT a.*, b.*
FROM table a, table b
WHERE a.id = b.id;
Run Code Online (Sandbox Code Playgroud)

sql join

380
推荐指数
7
解决办法
16万
查看次数