我有一个简单的jquery点击事件
<script type="text/javascript">
$(function() {
$('#post').click(function() {
alert("test");
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
以及site.master中定义的jquery引用
<script src="<%=ResolveUrl("~/Scripts/jquery-1.3.2.js")%>" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
我已经检查过脚本是否正确解析,我能够看到标记并直接在firebug中查看脚本,所以我必须被找到.但是,我仍然得到:
$未定义
并没有jquery工作.我也尝试了各种各样的变体,如$(document).ready和jQuery等.
它是.net 3.5上的一个MVC 2应用程序,我确定我真的很密集,google上的每个地方都说要检查文件是否正确引用,我已经检查并再次检查,请指教!:/
我意识到OAuth规范没有指定任何关于ConsumerKey,ConsumerSecret,AccessToken,RequestToken,TokenSecret或Verifier代码的来源,但我很好奇是否有任何创建显着安全令牌的最佳实践(特别是令牌/秘密组合).
在我看来,创建令牌有几种方法:
(1)的优点是数据库是看起来最安全的信息的唯一来源.对(2)或(3)进行攻击会更难.
散列实数据(2)将允许从可能已知的数据重新生成令牌.可能没有真正为(1)提供任何优势,因为无论如何都需要存储/查找.比(1)更多的CPU密集型.
加密真实数据(3)将允许解密以了解信息.与(1)和(2)相比,这将需要更少的存储空间和更少的查找,但也可能不太安全.
是否还有其他方法/优点/缺点需要考虑?
编辑:另一个考虑因素是令牌中必须有某种随机值,因为必须存在过期和重新发行新令牌的能力,因此它不能只包含真实数据.
关注问题:
是否有最小的令牌长度,以显着加密安全?据我了解,更长的令牌秘密会创建更安全的签名.这种理解是否正确?
从散列角度来看,使用特定编码优于另一种编码是否有优势?例如,我看到很多使用十六进制编码的API(例如GUID字符串).在OAuth签名算法中,令牌用作字符串.使用十六进制字符串,可用字符集将比使用Base64编码的字符集小得多(更可预测).在我看来,对于两个长度相等的字符串,具有较大字符集的字符串将具有更好/更宽的散列分布.在我看来,它会提高安全性.这个假设是否正确?
OAuth规范在11.10熵的熵中提出了这个问题.
在我的系统中更新Cordova 5.0后,我创建了新的应用程序.当我在设备上测试我的应用程序时,我在控制台日志中出现错误:
No Content-Security-Policy meta tag found.
Please add one when using the Cordova-plugin-whitelist plugin.: 23.
Run Code Online (Sandbox Code Playgroud)
我在head部分添加了meta
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src: 'self' 'unsafe-inline' 'unsafe-eval'>
Run Code Online (Sandbox Code Playgroud)
但同样,我在使用应用程序内浏览器插件和其他7个网站链接的应用程序中得到了同样的错误.
我正在使用JS作为改变我正在创建的SPA内容的一种方式.当我按下按钮更改内容时,HTML会从此更改:
<div id="selectDiv" style="display: none;">
Run Code Online (Sandbox Code Playgroud)
对此:
<div id="selectDiv" style>
Run Code Online (Sandbox Code Playgroud)
现在我的SPA的一部分有一个包含许多复选框的div,每个复选框代表一个div,所以当我按下提交按钮时,应该显示的下一个div将是所选复选框列表中的第一个项目.
我想知道JQuery中是否有一种方法可以"几乎检测到"哪个div现在可见.这样的事情:
if($('#selectDiv').isVisible()){
//JS code associated with this div.
}
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我正在尝试连接到API,验证用户身份,然后查看用户详细信息.这是通过首先访问登录端点来完成的
http://api.example.com/login/<username>/<password>
Run Code Online (Sandbox Code Playgroud)
登录,然后查看以下内容以查看用户详细信息:
http://api.example.com/user/
Run Code Online (Sandbox Code Playgroud)
这一切都可以在Web浏览器中使用.但是,一旦我尝试使用Curl,登录工作正常,但在尝试查看用户详细信息时,我会收到401,未经授权的错误.我相信这是因为Curl没有正确保存会话cookie?有人可以指出它为什么不工作以及如何解决它?我已经尝试过搜索堆栈交换,但是,我尝试过的解决方案都没有适用于我的情况.我用来卷曲端点的代码如下所示.谢谢!
define("COOKIE_FILE", "cookie.txt");
// Login the user
$ch = curl_init('http://api.example.com/login/joe/smith');
curl_setopt ($ch, CURLOPT_COOKIEJAR, COOKIE_FILE);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
echo curl_exec ($ch);
// Read the session saved in the cookie file
echo "<br/><br/>";
$file = fopen("cookie.txt", 'r');
echo fread($file, 100000000);
echo "<br/><br/>";
// Get the users details
$ch = curl_init('http://api.example.com/user');
curl_setopt ($ch, CURLOPT_COOKIEJAR, COOKIE_FILE);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
echo curl_exec ($ch);
Run Code Online (Sandbox Code Playgroud)
此代码将输出:
HTTP/1.1 200 OK Date: Mon, 22 Oct 2012 21:23:57 …Run Code Online (Sandbox Code Playgroud) 我想创建一个创建侧边栏的浏览器扩展.Chrome没有一流的侧边栏,因此我们必须在页面中添加iframe.但是,由于内容安全策略,这会在许多页面上中断.例如,GitHub使用CSP,它不允许嵌入来自其他站点的iframe.例如,如果您尝试将capitalone.com网站放在GitHub上的iframe中,您将获得以下内容:
拒绝构建" https://www.capitalone.com/ ",因为它违反了以下内容安全策略指令:"frame-src'self'recrera.githubusercontent.com www.youtube.com assets.braintreegateway.com".
这是一个简单的浏览器扩展,可以重现:
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
if (changeInfo.status === 'complete') {
chrome.tabs.executeScript(tabId, { code: 'document.body.innerHTML=\'<iframe style=\"width:600px; height:600px\" src=\"https://www.capitalone.com/\"></iframe>\' + document.body.innerHTML;' }, function() {
console.log('Iframe injection complete');
})
}
}.bind(this));
Run Code Online (Sandbox Code Playgroud)
然而,根据维基百科,尽管有任何内容安全策略,浏览器扩展应该能够注入iframe:
根据CSP处理模型,[20] CSP不应干扰用户安装的浏览器加载项或扩展的操作.CSP的这一功能有效地允许任何附加组件或扩展程序将脚本注入网站,无论该脚本的来源如何,因此可以免除CSP策略.
除了我正在做的事情之外,还有其他方法可以注入iframe吗?
我正在接受Cordova应用程序开发的培训,并且我解决了内容安全策略的问题.
我的应用程序使用Android模拟器运行,但是当我必须执行javascript时,我在NetBeans(输出窗口)中收到一条消息.
Refused to execute inline event handler because it violates the following Content Security Policy directive: "script-src 'self' https://ssl.gstatic.com". (22:35:56:126 | error, security)
at www/index.html:58
Run Code Online (Sandbox Code Playgroud)
我的代码如下.这是我的index.html.我试着理解CSP是如何工作的,我想我理解这个概念,但在这种情况下,我不明白这个问题.第58行是评论.
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src 'self' * data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self'; script-src 'self' https://ssl.gstatic.com; media-src *">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<title>Hello World</title>
<link rel="stylesheet" type="text/css" href="css/index.css">
</head>
<body>
<div class="app">
<h1>Apache Cordova</h1>
<div id="deviceready" class="blink">
<p class="event listening">Connecting to Device</p>
<p class="event …Run Code Online (Sandbox Code Playgroud) 有没有办法实现文本更改事件来检测HTML输入文本字段上的文本更改?
可以使用关键事件(按键等)来模拟这些事件,然而,它确实不具备性能和难度,是否有更好的方法?
我想向用户显示加载图标,直到页面元素完全加载.我怎么能用javascript做到这一点,我想用javascript,而不是jquery?
这是google如何做的链接我该怎么做?在onload事件或类似的东西上触发一些函数..我知道它会像这样或其他任何方式做到这一点吗?或者有一些事件呢?
更新 我使用display属性做了一些事情我隐藏了body元素但是body标签的onload我更改了它的属性但是在哪里放置加载图标并添加更多的交互性.
我试图在本地存储中设置一组变量,但函数没有运行,我试图获得值,但没有运气,如何保存本地存储中的字段?
function setPerson(){
var person = { 'name': getElementById('name'), 'photo': getElementById('photo')};
// Put the object into the storage
alert(person);
localStorage.setItem('person', JSON.stringify(person));
};
Run Code Online (Sandbox Code Playgroud)
HTML 在HTML中,我从字段中将值放入标记中并填充它们,但是当我尝试获取它们并保存它们时,没有任何事情发生......
我还尝试在那里输出固定值,然后显示警报,但是它只显示对象而不是值
var testObject = { 'one': 1, 'two': 2, 'three': 3 };
// Put the object into storage
localStorage.setItem('testObject', JSON.stringify(testObject));
// Retrieve the object from storage
var retrievedObject = localStorage.getItem('testObject');
alert('retrievedObject: ', JSON.parse(retrievedObject));;
Run Code Online (Sandbox Code Playgroud)