我想要include()一个位于我的服务器上的php文件,带有额外的GET属性.但它不会起作用:
include('search.php?q=1');
Run Code Online (Sandbox Code Playgroud)
它给出的错误:
PHP Warning: include(): Failed opening './search.php?q=1' for inclusion
Run Code Online (Sandbox Code Playgroud)
似乎它试图打开一个名为'search.php?q = 1'的文件而不是打开'search.php'文件并向其发送GET属性.
*请注意,如果我不添加任何GET属性,它确实有效:
include('search.php');
Run Code Online (Sandbox Code Playgroud) 我一直在使用外部存储来保存不同类型的文件。该文件需要对用户可见。现在从 Android Q 开始,该方法getExternalStoragePublicDirectory()已被弃用getExternalStoragePublicDirectory(docs)。
我使用了以下代码:
File externalFilesDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "DirectoryName");
Run Code Online (Sandbox Code Playgroud)
是否有另一种方法来保存用户可见的文件?
PHP中是否有本机函数或函数集允许我将echophp文件输出打印到文件中.
例如,代码将生成需要放入.html文件的HTML DOM,然后显示为静态页面.
该命令和npm-check-updatesnpm update包有什么区别?使用后者是否完全安全?
执行后似乎npm update并不是所有的包都被更新,因此它看起来不完整。许多其他流行的 SO 答案都提到首先使用先前的命令,然后使用后者,但我仍然不明白后者做了什么而先验命令没有。
我需要生成一个nonce(仅生成一次的数字)来删除CSP规则'unsafe-inline'和脚本的所有可信URL,从而提高CSP分数.因此我需要在HTML中
<script nonce="{{{nonce}}}" src="http://example.com/file.js">
Run Code Online (Sandbox Code Playgroud)
我知道nonce必须是唯一的,计算方法几乎不可能预测,它应该至少有128位(因此是16字节),并在base64中编码.因此这是正确的node.js吗?
const crypto = require('crypto');
let nonce = crypto.randomBytes(16).toString('base64');
Run Code Online (Sandbox Code Playgroud) 我正在使用JQuery 3.1.1版,我正在尝试在我的网页上实现内容安全策略指令.
我收到以下错误:
拒绝执行内联脚本,因为它违反了以下内容安全策略指令:"script-src'self''nonce-c20t41c7-73c6-4bf9-fde8-24a7b35t5f71'".要么是'unsafe-inline'关键字,哈希('sha256-KAcpKskREkEQf5B3mhDTonpPg34XnzaUC5IoBrOUrwY ='),要么是nonce('nonce -...')来启用内联执行.
该错误发生在主jquery.js脚本文件的第82行.这一行的内容是:
doc.head.appendChild( script ).parentNode.removeChild( script );
Run Code Online (Sandbox Code Playgroud)
基本上,它会向DOM添加内联脚本标记,这违反了CSP.
我不想用'unsafe-inline'.有没有其他方法来规避这个错误?
正如您在CSP违规中看到的那样,我正在使用CSP级别2(nonce),但它会被忽略.在附加脚本标记时,是否有可能(某些方式)通知jQuery使用此nonce?
更新:这是HTML的样子(使用Express模板作为nonce)
<script nonce="<%=nonce%>" type="text/javascript" src="jquery.js"></script>
Run Code Online (Sandbox Code Playgroud)
呈现HTML后,脚本标记上的nonce属性与服务器发送的CSP nonce指令匹配.
更新:它确实适用于普通的JavaScript
<script nonce="<%=nonce%>" type="text/javascript">
var userEmail = "<%=user.user.email%>";
</script>
Run Code Online (Sandbox Code Playgroud)
如果没有nonce属性,此脚本标记将违反CSP指令.
我需要在我的脚本中声明很多对象属性,我想知道是否有任何方法可以缩短它:
Core.registry.taskItemSelected;
Core.registry.taskItemSelected.id;
Core.registry.taskItemSelected.name;
Core.registry.taskItemSelected.parent;
Core.registry.taskItemSelected.summary;
Core.registry.taskItemSelected.description;
Run Code Online (Sandbox Code Playgroud) 假设我有以下html
<ul>
<li id="a">a</li>
<li id="b">b</li>
<li id="c">c</li>
</ul>
<ul>
<li id="d">d</li>
<li id="e">e</li>
<li id="f">f</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
如果我用jQuery的抢项目$('#e'),我怎么确定的位置或位置/指数e相对于它的兄弟姐妹d和f?换句话说,我期望返回值1(如果基于零的索引)或2(如果一个基础索引),因为它是ul列表中的第二个元素.
我一直在阅读许多其他问题,例如[1] [2] [3],但问题仍然存在.
我需要找到"最干净"的方式来input获得移动设备的HTML 并尊重所有这三个规则:
我一直在讨论这些解决方案,这两个主题都没有累积地尊重上述三条规则.
<input type="text" pattern="\d*" />
Run Code Online (Sandbox Code Playgroud)
此解决方案尽管在iOS中工作并且完成了由w3验证器测试的HTML规则,但在Chrome Android中提供了带有QWERTY键盘的完整键盘.
<input type="number" pattern="\d*" />
Run Code Online (Sandbox Code Playgroud)
此解决方案适用于iOS和Android Chrome系统,显示两个系统上的数字键盘,但它会抛出HTML验证错误
仅当输入类型为电子邮件,密码,搜索,电话,文本或URL时,才允许使用属性模式.
<input type="number" />
Run Code Online (Sandbox Code Playgroud)
此解决方案通过HTML测试,在Chrome上显示不错,但在iOS键盘上显示了几个不需要的密钥
我看到许多开发人员使用此解决方案
<input type="tel" />
Run Code Online (Sandbox Code Playgroud)
但是经过Android Chrome测试,它不允许使用点符号(.),并且键有字母,这是多余的.
html-input mobile-safari numeric-keypad android-keypad iphone-keypad
我在 VS Code 中收到url.format来自 NodeJS URL 模块的警告已被弃用。
const nodeUrl = require('url')
const url = nodeUrl.format({
protocol: 'https',
host: 'example.com',
pathname: 'somepath'
})
Run Code Online (Sandbox Code Playgroud)
我应该用什么来代替?将上述内容替换为完全安全吗
const buildUrl = (url) => url.protocol + '://' + url.host + '/' + url.pathname
Run Code Online (Sandbox Code Playgroud)
这两个函数是否等效,即对于具有该结构的任何对象输入,它会产生相同的输出吗?没有url.format我可能会错过的魔法吗?例如pathname有或没有前导/.
我的项目很大,有很多调用url.format,我想确保没有任何问题。
编辑:显然我们应该使用WHATWG URL 标准
那么这是正确的替换吗?
const buildUrl = (url) => new URL(url.pathname, url.protocol + '://' + url.host)
Run Code Online (Sandbox Code Playgroud) javascript ×2
jquery ×2
node.js ×2
php ×2
android ×1
file-storage ×1
get ×1
html-input ×1
include ×1
indexing ×1
java ×1
nonce ×1
npm-update ×1
object ×1
properties ×1