我正在寻找一种方法来清理我粘贴到浏览器中的输入,这可能与jQuery有关吗?
到目前为止,我已经设法做到了这一点:
$(this).live(pasteEventName, function(e) {
// this is where i would like to sanitize my input
return false;
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,由于这个"次要"问题,我的发展已经开始戛然而止.如果有人能指出我正确的方向,我真的会让我成为一个快乐的露营者.
我有一个Spring REST应用程序,它首先使用基本身份验证进行保护.
然后我添加了一个登录控制器,它创建了一个JWT JSON Web令牌,用于后续请求.
我可以将以下代码移出登录控制器并进入安全过滤器吗?然后我不再需要登录控制器了.
tokenAuthenticationService.addTokenToResponseHeader(responseHeaders, credentialsResource.getEmail());
Run Code Online (Sandbox Code Playgroud)
或者我可以删除基本身份验证吗?
将基本身份验证与JWT混合是一种好的设计吗?
虽然一切正常,但我在这里有点黑暗,以便最好地设计这种安全性.
即时通讯使用mvc2的默认路由{controller}/{action}/{id}.我想id在我的视图中访问该字段.如果不使用TempData和我怎么能这样做ViewData?
如果我有一个网址,就像
http://server-name/home/edit/14
我需要"14"视图中的值.
根据jQuery:
crossDomain (default: false for same-domain requests, true for cross-domain requests)类型:Boolean如果要在同一域上强制执行crossDomain请求(例如JSONP),请将crossDomain的值设置为true.例如,这允许服务器端重定向到另一个域.(版本增加:1.5)
我不明白以上.
如果代码是
$(document).ready(function ()
{
$.ajax(
{
url: 'http://es3.com/Handlers/MyHandler.ashx',
cache: false,
dataType: "jsonp",
...
...
});
});
function aaa(json)
{
alert(json.result);
}
Run Code Online (Sandbox Code Playgroud)
并且即时通讯指定datatype:jsonp,然后响应将是application/javascript mime typed,因为它是一个将在我的浏览器中运行的脚本.
当我在同一个域下运行此代码时,我没有看到为什么它不会像那样行为的任何原因.(因此 - 我没有看到这个属性的用法).
我做了一个样本
我有2个(主机调整)域名.es2.com和es3.com.
(注意,代码中的url始终是es3.com)
测试#1:
从es3.com以下位置运行代码:(左窗格)从以下位置
运行代码es2.com:(右窗格)
crossDomain:false(缺少时默认).
看看差异:(http://i.stack.imgur.com/RKyZp.jpg)
测试#2:
运行以下代码es3.com:(左窗格)
运行以下代码es2.com:(右窗格)
crossDomain:true <---通知
(http://i.stack.imgur.com/xEcyd.jpg)

我没有看到任何区别. …
我试图理解为什么CORS正在以它的工作方式工作.
当我从了解到这个职位,当从网页www.a.com使得AJAX请求www.b.com,那么它的www.b.com是决定是否请求应该被允许.
但是在这种模型中客户端的确切安全性是什么?例如,如果黑客成功向我的页面注入XSS脚本,那么它会向其域发出一个AJAX请求来存储用户数据.因此,黑客的域名将允许这样的请求.
我认为www.a.com应决定允许请求的域名.因此理论上,在头文件Access-Control-Allow-Origin中,我想提出允许AJAX CORS请求的域的完整列表.
有人可以解释当前CORS实现处理的安全问题吗?
我的页面中有以下代码,以便在DOM准备就绪时自动在页面上提交表单:
$(function () {
$('form').submit();
});
Run Code Online (Sandbox Code Playgroud)
但是,在下一页上,如果用户点击back他们的浏览器,它将返回到此页面之前的页面,而不是打开此代码的页面(无论如何都使用Chrome/IE).即浏览器历史记录中缺少包含表单的页面.
这很棒,虽然我想知道现在所有现代浏览器都能做到这一点吗?我正在寻找一个答案,引用官方来源,如来自互联网标准文件或浏览器供应商,说明他们已实施的机制.
这似乎只有在我调用submit()DOM ready或Window load事件中的函数时才会发生.
例如,此代码将在单击页面(后退/前进)后显示浏览器历史记录中的表单页面: -
document.addEventListener('click', function () { document.forms[0].submit(); }, false);
Run Code Online (Sandbox Code Playgroud)
以下片段不会: -
document.addEventListener('DOMContentLoaded', function () { document.forms[0].submit(); }, false);
window.addEventListener('load', function() { document.forms[0].submit(); }, false);
window.onload = function () { document.forms[0].submit(); };
Run Code Online (Sandbox Code Playgroud) 请注意,这不是我的应用程序,它是我正在为客户端测试的应用程序.我通常会在https://security.stackexchange.com/上提出这样的问题,但是因为这是我在这里提出的更多编程相关问题.
当然,UUID的RFC 4122没有规定必须由密码安全伪随机数发生器(CSPRNG)生成类型4 UUID.它简单地说
将所有其他位设置为随机(或伪随机)选择的值.
虽然,算法的某些实现(例如Java中的这种实现)确实使用CSPRNG.
我试图深入研究微软的实施是否成功.主要围绕.NET或MSSQL Server如何生成它们.
检查.NET源代码,我们可以看到以下代码:
Marshal.ThrowExceptionForHR(Win32Native.CoCreateGuid(out guid), new IntPtr(-1));
return guid;
Run Code Online (Sandbox Code Playgroud)
检查CoCreateGuiddocco,它说
CoCreateGuid函数调用RPC函数UuidCreate
我能找到关于这个功能的所有内容都在这里.我好像已经到了兔子洞的尽头.
现在,有没有人知道如何UuidCreate生成其UUID?
我见过很多相关帖子:
第一个说:
GUID不保证随机性,它保证了唯一性.如果您想要随机性,请使用Random生成字符串.
我同意这一点,除了在我的情况下随机,不可预测的数字,你当然使用CSPRNG而不是Random(例如RNGCryptoServiceProvider).
而后者的状态(实际上引自维基百科):
WinAPI GUID生成器的密码分析显示,因为V4 GUID的序列是伪随机的; 在完全了解内部状态的情况下,可以预测先前和后续的值
现在,在围栏的另一边,Will Dean说这篇文章
我最后一次研究这个问题(几年前,可能是XP SP2),我直接进入操作系统代码,看看实际发生了什么,并使用安全随机数生成器生成一个随机数.
当然,即使它当前正在使用CSPRNG,这也将是特定于实现的,并且可能随时更改(例如,对Windows的任何更新).不太可能,但理论上可行.
我的观点是,没有规范的参考,以上是为了证明我已经完成了我的研究,上述帖子都没有引用任何权威的内容.
原因是我正在尝试确定是否需要更改使用GUID进行身份验证令牌的系统.从纯粹的设计角度来看,答案肯定是肯定的,但是从实际的角度来看,如果Windows UuidCreate功能确实使用了CSPRNG,那么系统就没有直接的风险.任何人都可以对此有所了解吗?
我正在寻找有信誉的来源的任何答案来支持它.
我正在使用以下策略实现内容安全策略标头
Content-Security-Policy: default-src 'self'
所以需要避免内联脚本,因为它不会执行.
但是,在MVC应用程序中,某些功能(如编辑器模板)使用内联脚本.例如tinymce_jquery_full.cshtml包含
$(function() {
$('#@ViewData.TemplateInfo.GetFullHtmlFieldName(string.Empty)').tinymce({
...
Run Code Online (Sandbox Code Playgroud)
.js使用CSP时,在外部文件中包含动态值的好方法是什么?
我目前的想法是两种方式之一:
类似于JSONP的工作方式,除了在URL中我没有指定回调 - 我只是传递动态值.在每个需要动态JavaScript的文件中,我都包含一个链接,例如
<script src="/script/Foo/bar"></script>
Run Code Online (Sandbox Code Playgroud)
哪些匹配ScriptController的Foo返回类型的内容的动作text/javascript将所述动态值bar.这对我来说是一种可靠的方式,如果有点笨拙,它首先会破坏使用CSP的一些优点(几乎很容易意外地插入未编码的文本并导致XSS,因为它没有CSP).
动态值将插入页面中:
<input type="hidden" id="url" name="url" value"http:://www.example.com/" />
Run Code Online (Sandbox Code Playgroud)
并在外部JavaScript文件中查找这些值:
$('#url').val();
Run Code Online (Sandbox Code Playgroud)
这将有效,但如果页面上有多个动态控件或者有多个相同类型的控件,则可能会很麻烦.问题是如何有效地将每个.js脚本与其隐藏字段匹配.
有没有更好的解决方案,还是有任何我可以使用的现成框架?
是的http://anything/%%30%30,即使在悬停时,该链接也会崩溃我的Google Chrome浏览器.
它是如何工作的?