小编And*_*ley的帖子

Javascript:负面的lookbehind相当于?

有没有办法在javascript正则表达式中实现相当于负面的lookbehind?我需要匹配一个不以特定字符集开头的字符串.

如果在字符串的开头找到匹配的部分,我似乎无法找到正确执行此操作的正则表达式.负面的看起来似乎是唯一的答案,但javascript没有.

编辑:这是我想要工作的正则表达式,但它没有:

(?<!([abcdefg]))m

所以它会匹配'jim'或'm'中的'm',但不会匹配'jam'

javascript regex negative-lookbehind

133
推荐指数
6
解决办法
7万
查看次数

PDO MySQL:是否使用PDO :: ATTR_EMULATE_PREPARES?

这是我到目前为止所读到的PDO::ATTR_EMULATE_PREPARES:

  1. PDO的准备仿真对性能更好,因为MySQL的本机准备绕过了查询缓存.
  2. MySQL的本机准备更好于安全性(防止SQL注入).
  3. MySQL的本机准备更适合错误报告.

我不知道这些陈述是多么真实.选择MySQL接口时我最担心的是阻止SQL注入.第二个问题是表现.

我的应用程序目前使用过程MySQLi(没有预处理语句),并且使用了很多查询缓存.它很少会在单个请求中重复使用预准备语句.我开始转向PDO以获取已准备好的语句的命名参数和安全性.

我正在使用MySQL 5.1.61PHP 5.3.2

我应该PDO::ATTR_EMULATE_PREPARES启用还是不启用?有没有办法既具有查询缓存的性能又具有预准备语句的安全性?

php mysql pdo

113
推荐指数
7
解决办法
5万
查看次数

检测Chrome中阻止的弹出窗口

我知道javascript技术可以检测弹出窗口是否在其他浏览器中被阻止(如本问题的答案所述).这是基本测试:

var newWin = window.open(url);

if(!newWin || newWin.closed || typeof newWin.closed=='undefined')
{
    //POPUP BLOCKED
}
Run Code Online (Sandbox Code Playgroud)

但这在Chrome中无效.弹出窗口被阻止时,永远不会到达"POPUP BLOCKED"部分.

当然,测试工作到一定程度,因为Chrome实际上并没有阻止弹出窗口,而是在右下角的一个微小的窗口中打开它,列出"阻塞"弹出窗口.

我想做的是能够判断弹出窗口是否被Chrome的弹出窗口阻止程序阻止.我试图避免浏览器嗅探,以支持功能检测.有没有办法在没有浏览器嗅探的情况下做到这一点?

编辑:现在我已经尝试利用的newWin.outerHeight,newWin.left以及其他类似性质的做到这一点.当弹出窗口被阻止时,Google Chrome会将所有位置和高度值返回为0.

不幸的是,即使弹出窗口实际打开了一段未知的时间,它也会返回相同的值.经过一段神奇的时期(在测试中几秒钟),位置和大小信息将作为正确的值返回.换句话说,我仍然没有更接近解决这个问题.任何帮助,将不胜感激.

javascript google-chrome popup

100
推荐指数
6
解决办法
8万
查看次数

在Webkit浏览器中使TBODY可滚动

我知道这个问题,但没有一个答案适用于Safari,Chrome等.

接受的策略(如此处所示)是设置tbody高度和溢出属性,如下所示:

<table>
    <thead>
        <tr><th>This is the header and doesn't scroll</th></tr>
    </thead>
    <tbody style="height:100px; overflow:auto;">
        <tr><td>content that scrolls</td></tr>
        <tr><td>content that scrolls</td></tr>
        <tr><td>content that scrolls</td></tr>
        <tr><td>content that scrolls</td></tr>
        <tr><td>content that scrolls</td></tr>
        <tr><td>content that scrolls</td></tr>
        <tr><td>content that scrolls</td></tr>
    </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

不幸的是,这在任何webkit浏览器中都不起作用.有一个关于它的错误报告似乎不是一个高优先级(据报道,05年6月).

所以我的问题是:是否有其他策略确实有效?我尝试过双表方法,但是不可能保证标题与内容对齐.我只需要等待Webkit修复它吗?

html css webkit

69
推荐指数
5
解决办法
9万
查看次数

Javascript关闭警报框

我希望能够在一定时间后或特定事件(即onkeypress)上使用javascript自动关闭警报框.根据我的研究,内置的alert()函数看起来不太可能.有没有办法覆盖它并控制它打开的对话框?

此外,我不希望覆盖显示隐藏的div作为警报.我需要一个实际的对话框.

javascript alert dialog dom-events

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

Registry Watcher C#

我是WMI的新手,我需要在C#服务中实现RegistryValueChangeEvent.

我需要一个事件处理程序,每次更改一组注册表值时都会触发该事件处理程序.我想要的行为类似于FileSystemWatcher类的Changed事件,但是对于注册表值.

如果我可以使用其他一些技术来完成同样的任务,我也会很感激.我的最低要求是它比现在更好的解决方案:每20秒轮询一次,并将注册表值与最后的结果进行比较.

请在答案中提供示例代码.如果我只能看一个注册表值的示例,那就没问题了.

我需要.Net 2.0中的解决方案

谢谢.

c# registry event-handling .net-2.0

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

为什么Cloudfront在我的网络应用程序中加载脚本?(我不用它)

我管理一个安全的PHP/MySQL Web应用程序,使用广泛的jQuery.今天,我们的应用程序日志中出现了一个奇怪的错误:

JS Error: Error loading script:
https://d15gt9gwxw5wu0.cloudfront.net/js/_MY_WEB_APP_DOMAIN_/r.js
Run Code Online (Sandbox Code Playgroud)

我们没有在我们的应用中使用亚马逊的Cloudfront CDN.当我转到无法加载的URL时,这些是唯一的内容:

if(typeof _GPL.ri=='function'&&!_GPL.isIE6){_GPL.ri('_GPL_r')}_GPL.rl=true;
Run Code Online (Sandbox Code Playgroud)

用户的用户代理字符串是:

Mozilla/5.0 (Windows NT 6.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Run Code Online (Sandbox Code Playgroud)

请注意:我不是触发此错误的用户.这是触发它的数千名用户之一.我无法控制客户端计算机.

有谁知道这里发生了什么?这是某种XSS攻击吗?

**更新**

看来我并不是唯一一个在他们的网站上发现过这种异常现象的人.我发现这个报告具有相同的确切行为,这似乎表明代码是无害的,但仍然没有答案它来自何处.

另外,我发现这个类似代码的pastebin似乎是某种广告脚本.再次,并非非常有帮助.

**更新2**

更多上下文:webapp使用多个第三方jQuery插件,但没有任何第三方分析.所有脚本都托管在我们自己的服务器上,对我们所有代码的审核都没有为"cloudfront"提供匹配.

这个应用程序已经生产了大约4年,这是这样的任何活动的第一个也是唯一一个实例.它没有发生过或之后,所以我怀疑我能够重现它.

我感兴趣的是这是否是某种攻击.如果是的话,我想知道如果它已经没有堵塞,如何堵塞它试图利用的漏洞.

javascript security xss web-applications amazon-cloudfront

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

捕获FFMPEG输出

我需要阅读ffmpeg的输出,以便从昨天开始尝试我的问题的解决方案.这是我问题的另一个问题,所以我提出了一个新问题.

我怎样才能从ffmpeg -iPHP中获取命令的输出?

这就是我一直在尝试的:

<?PHP
    error_reporting(E_ALL);
    $src = "/var/videos/video1.wmv";
    $command = "/usr/bin/ffmpeg -i " . $src;
    echo "<B>",$command,"</B><br/>";
    $command = escapeshellcmd($command);

    echo "backtick:<br/><pre>";
    `$command`;

    echo "</pre><br/>system:<br/><pre>";
    echo system($command);

    echo "</pre><br/>shell_exec:<br/><pre>";
    echo shell_exec($command);

    echo "</pre><br/>passthru:<br/><pre>";
    passthru($command);

    echo "</pre><br/>exec:<br/><pre>";
    $output = array();
    exec($command,$output,$status);
    foreach($output AS $o)
    {
            echo $o , "<br/>";
    }
    echo "</pre><br/>popen:<br/><pre>";
    $handle = popen($command,'r');
    echo fread($handle,1048576);
    pclose($handle);
    echo "</pre><br/>";
?>
Run Code Online (Sandbox Code Playgroud)

这是我的输出:

<B>/usr/bin/ffmpeg -i /var/videos/video1.wmv</B><br/>
backtick:<br/>
    <pre></pre><br/>
system:<br/>
    <pre></pre><br/>
shell_exec:<br/>
    <pre></pre><br/>
passthru:<br/>
    <pre></pre><br/>
exec:<br/> …
Run Code Online (Sandbox Code Playgroud)

php ffmpeg exec

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

从PHP创建ejabberd用户

我需要从PHP脚本创建一个ejabberd用户.我还需要能够将新用户添加到预定义的共享名单中.

我应该打电话ejabberdctl使用exec()还是有更好的方式?

php xmpp ejabberd

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

Windows过滤平台标注驱动程序 - 示例,教程,帮助

我正在尝试为家长控制程序编写Windows过滤平台标注驱动程序.不幸的是,我之前从未编写过驱动程序,除非你已经了解基础知识(我猜),否则MSDN上的文档并没有太大帮助.

有谁知道有关这个问题的任何好资源?驱动程序开发工具包中的书籍,在线示例,文档,示例?

我不是要求任何人对我进行谷歌搜索.我只是需要有关这个问题的建议.如果有人之前已经走过这条道路或者知道一个好的资源,我会非常感谢在正确的方向上轻推; 即使它只是一本关于开发Windows驱动程序的好书.

谢谢.

language-agnostic windows networking driver

8
推荐指数
1
解决办法
3085
查看次数