小编Jac*_*ckW的帖子

阻止HTTP基本身份验证显示图像提示

如果我在页面上有来自不同域的图像,并且该图像受HTTP基本身份验证保护,则浏览器将向用户显示身份验证对话框,如下所示: Auth Dialog 鉴于该网站是一个论坛,因此包含大量用户生成的内容,恶意用户很容易添加这样的图像,然后可能收获一两个人的登录凭据他们的站点凭据进入对话框.

有没有办法防止在没有使用图像主机白名单的情况下显示凭证提示(不理想,因为它对用户非常严格)或确保图像在允许之前可以访问(可以解决)?

html

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

if-else在递归正则表达式中没有按预期工作

我正在使用正则表达式来解析一些BBCode,因此正则表达式必须递归地工作以匹配其他人中的标签.大多数BBCode都有一个参数,有时引用它,但并非总是如此.

我正在使用的正则表达式的简化等效(使用html样式标记来减少所需的转义)是这样的:

'~<(\")?a(?(1)\1)> #Match the tag, and require a closing quote if an opening one provided
  ([^<]+ | (?R))* #Match the contents of the tag, including recursively
</a>~x'
Run Code Online (Sandbox Code Playgroud)

但是,如果我有一个如下所示的测试字符串:

<"a">Content<a>Also Content</a></a>
Run Code Online (Sandbox Code Playgroud)

它只匹配<a>Also Content</a>因为当它尝试从第一个标记匹配时,第一个匹配组,\1被设置为",并且当递归运行正则表达式以匹配内部标记时,这不会被覆盖,这意味着它不是引用,它不匹配,正则表达式失败.

如果相反我一直使用或不使用引号,它工作正常,但我不能确定那将是我必须解析的内容的情况.有什么方法可以解决这个问题吗?


完整的正则表达式,我使用,来匹配[spoiler]content[/spoiler],[spoiler=option]content[/spoiler]并且[spoiler="option"]content[/spoiler],是

"~\[spoiler\s*+ #Match the opening tag
            (?:=\s*+(\"|\')?((?(1)(?!\\1).|[^\]]){0,100})(?(1)\\1))?+\s*\] #If an option exists, match that
          (?:\ *(?:\n|<br />))?+ #Get rid of an extra new line before the start of the content if necessary
          ((?:[^\[\n]++ …
Run Code Online (Sandbox Code Playgroud)

php regex pcre

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

格式化后将文本截断为特定行数

我正在制作一个网站,该网站将显示来自 YouTube API 的一些视频,并在服务器端将视频描述截断为 170 个字符。它们必须放入一个狭窄的盒子中,因此每当它包含 URL 或长单词使其包裹很多时,它有时会溢出容器。是否有客户端方法来截断字符串并在末尾添加省略号(我可以使用溢出:隐藏,但我不能使用省略号。这是我的最后手段)。

下面是我正在尝试做的事情的图片:

它应该看起来像这样

javascript css

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

标签 统计

css ×1

html ×1

javascript ×1

pcre ×1

php ×1

regex ×1