问题列表 - 第28778页

使用mysqli预处理语句不会转义哪些字符?

我正在努力强化我的一些PHP代码并使用mysqli预处理语句来更好地验证用户输入并防止注入攻击.

我切断了mysqli_real_escape_string,因为它没有转义%和_.但是,当我将查询创建为mysqli预处理语句时,仍然存在相同的缺陷.该查询根据用户名提取用户salt值.我会为密码和其他查找做类似的事情.

码:

$db = new sitedatalayer();

if ($stmt = $db->_conn->prepare("SELECT `salt` FROM admins WHERE `username` LIKE ? LIMIT 1")) {

  $stmt->bind_param('s', $username);
  $stmt->execute();
  $stmt->bind_result($salt);


  while ($stmt->fetch()) { 
    printf("%s\n", $salt);
  } 

  $stmt->close();    

}

else return false;
Run Code Online (Sandbox Code Playgroud)
  • 我正确地撰写了这个陈述吗?
  • 如果我需要检查其他角色?还有哪些其他缺陷?
  • 做这些选择的最佳做法是什么?

谢谢,

php security mysqli prepared-statement

4
推荐指数
1
解决办法
1993
查看次数

如何从C#/ F#调用IronPython函数?

这是C#,F#,IronPython和IronRuby集成的后续问题

为了使用Python的C/C++函数,SWIG是最简单的解决方案.反过来也可以使用Python C API,例如,如果我们有一个python函数,如下所示

def add(x,y):
    return (x + 10*y)

我们可以在C中提出使用此python的包装器,如下所示.

double Add(double a, double b)
{
    PyObject *X, *Y, *pValue, *pArgs;
    double res;

    pArgs = PyTuple_New(2);
    X = Py_BuildValue("d", a);
    Y = Py_BuildValue("d", b);

    PyTuple_SetItem(pArgs, 0, X);
    PyTuple_SetItem(pArgs, 1, Y);
    pValue = PyEval_CallObject(pFunc, pArgs);
    res = PyFloat_AsDouble(pValue);    

    Py_DECREF(X);
    Py_DECREF(Y);
    Py_DECREF(pArgs);
    return res;
}

IronPython/C#甚至F#怎么样?

  • 如何从IronPython调用C#/ F#函数?或者,IronPython/C#中是否有任何SWIG等效工具?
  • 如何从C#/ F#调用IronPython函数?我想我可以使用"engine.CreateScriptSourceFromString"或类似的东西,但我需要找到一种方法来调用IronPython函数看起来像一个C#/ F#函数,不是在字符串中编写代码,而是从文件中读取.

c# f# ironpython

0
推荐指数
1
解决办法
1592
查看次数

在VIM中进行XSD遍历

我使用VIM作为文本编辑器,编辑了很多XML和WSDL文件.

WSDL文件有一个XSD部分.我可以使用一些VIM插件来遍历XSD类型吗?即,如果我有以下行,插入符号是'|' 标志是:

<xsd:element minOccurs="0" name="FooName" type="Magic|FooType"/>
Run Code Online (Sandbox Code Playgroud)

我按Ctrl + Alt + Foo(或其他一些魔法组合)它会让我看到MagicFooType的定义,即:

<xsd:complexType name="MagicFooType">
Run Code Online (Sandbox Code Playgroud)

我找不到如何使用ctags以及我能找到的所有其他插件用于命令式语言(即Java).是否有一些插件/脚本来完成这项工作?

vim xsd

6
推荐指数
1
解决办法
592
查看次数

删除表中的所有外键

我有这个脚本在sql server 2005中工作

-- t-sql scriptlet to drop all constraints on a table
DECLARE @database nvarchar(50)
DECLARE @table nvarchar(50)

set @database = 'dotnetnuke'
set @table = 'tabs'

DECLARE @sql nvarchar(255)
WHILE EXISTS(select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where constraint_catalog = @database and table_name = @table)
BEGIN
    select    @sql = 'ALTER TABLE ' + @table + ' DROP CONSTRAINT ' + CONSTRAINT_NAME 
    from    INFORMATION_SCHEMA.TABLE_CONSTRAINTS 
    where    constraint_catalog = @database and 
            table_name = @table
    exec    sp_executesql @sql
END
Run Code Online (Sandbox Code Playgroud)

它在SQL Server 2008中不起作用.如何轻松删除某个表的所有外键约束?有没有人有更好的脚本?

t-sql foreign-keys sql-server-2008

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

在循环中使用NUnit Assert时,如何在错误消息中显示更多信息?

请考虑以下代码:

[Test]
public void WidgetTest()
{
    foreach (Widget widget in widgets)
    {
        Assert.AreEqual(0, widget.SomeValue);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果其中一个断言失败,我将得到一个非常无用的错误消息,如下所示:

1) Test Failure : WidgetTest.TestSomeValue
  Expected: 0
  But was:  1

at WidgetTest.TestSomeValue()
Run Code Online (Sandbox Code Playgroud)

所以,问题是,如何让NUnit显示更多有用的信息,例如小部件的名称,或循环的迭代等?即使行号也会更有帮助,因为这是以自动方式运行的,我希望能够在不调试代码的情况下发现失败的断言.

c# nunit unit-testing assert

11
推荐指数
1
解决办法
4754
查看次数

如何用mercurial"恢复"未更改的文件?

我已经在我的计算机上安装了Windows7,我不得不更改所有权限/取得所有权 - 这显然"触及"了我的所有文件,现在一切似乎都被"修改"(当我做"hg status"时),但只有一些文件有实际的变化.

是否有一个命令我可以运行,以便"提交"或"恢复"所有没有实际更改的文件(即文本未更改,即使文件属性已更改).

添加:

我已经从WinXP升级到Win7.我实际上并没有"复制"任何东西,磁盘上的存储库是相同的....它只是改变了Windows.升级后,我无法访问某些文件,我需要"取得所有权"才能重新获得访问权限(不知何故,用户权限未得到妥善保存).这是我得到的:

$ hg stat 
../../test/acceptance/spidermonkey/js1_5/String/regress-179068.as M      
$ hg diff ../../test/acceptance/spidermonkey/js1_5/String/regress-179068.as
Run Code Online (Sandbox Code Playgroud)

version-control mercurial

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

SQL Server 2005 Reporting Services:如何计算非空行?计算总数的任何提示?

在SQL Server 2005中使用Reporting Services:是否有办法只计算非空的记录; 类似于Excel中的"COUNTA"?我认为这将是一个非常简单的过程,但我尝试过的任何工作都没有.例如,我尝试使用以下表达式为"已完成",这是我想要计算的一列:= count(IIF(Fields!Completed.Value ="END"))但是,这会抛出"错误的数量"参数"错误."已完成"的值为"结束"或为空.

如果有必要,我可以尝试将其用于我的SQL查询,但查询已经非常复杂.

另外,我发现很少有关于如何计算报告总数以及如何从组中计算总数的文档.有人会对什么作为参考提出任何建议吗?

更新:进一步检查时,表达式= SUM(IIF(IsNothing(Fields!Completed.Value),0,1))确实返回适当数量的记录.我错误地认为报告会记录实际报告中的记录数量,并以"结束"值表示.由于报告分组为"已完成",因此"结束"仅在报告中针对每个唯一ID显示一次(也在"已完成"之上进行分组).所以我真的需要根据小计来计算(总结?)......如果这是可能的话.

t-sql grouping sql-server-2005 report reporting-services

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

在Ruby中规范化XML

我正在使用Ruby/Rails开发SAML网关,并且我正在尝试编写一些代码来验证传入SAML响应的xml数字签名与原始服务的x509证书.

我的问题:签名依赖于XML的规范化版本被散列,然后签约,我无法找到一个Ruby的lib /宝石,将规范化每个XML 规范.我在rubyforge上发现了一个超级旧的宝石,但是如果像nokogiri这样的功能支持这种功能我会更感兴趣(来自nokogiri docs,它没有).

我已经广泛搜索过了,但我想在这里问一下是否有人有任何好的见解,然后再尝试编写我自己的版本或重新编写现有的c14n-r库.

ruby xml saml digital-signature

10
推荐指数
1
解决办法
3704
查看次数

Java服务包装器和其他应用程序命令行参数

我目前正在使用java服务包装器来包装我开发的java应用程序.我需要能够通过java服务包装器将额外的命令行参数传递给我的应用程序.

假装我的应用程序名为myapp,我设置了java服务包装器,以便我运行的脚本称为myapp.我希望能够做到这样的事情:

./myapp start Parameter1 parameter2

并将这些附加参数传递到我的应用程序中.任何想法如何做到这一点?我发现谷歌搜索和查看文档只是拉起如何使用命令行参数来设置java服务包装器.我很难找到关于将命令行参数传递给应用程序的任何内容,除非在wrapper.conf文件中对它们进行硬编码.

现在我觉得我的选择是获取额外的命令行参数,将它们设置为环境变量并在wrapper.conf中进行硬编码.我宁愿不去那条路而且我希望我忽略了一些东西.

java java-service-wrapper

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

如何在XCode中居中标签的文本

我有一个带有两个标签的单元格.如何以编程方式居中对齐顶部标签并隐藏第二个标签?

iphone xcode label

3
推荐指数
1
解决办法
9191
查看次数