Tag: security

我如何在mvc 4中使用带有JSONpost的AntiForgeryToken

我有jQuery代码,使用JSON.stringify将数据发布到控制器类但是当我使用AntiForgeryToken时,它不起作用..是更好的方法来保护JSONpost或我错过了一些东西…. 其次我需要额外的这个…即加密来保护JSON数据…… 非常感谢先进的帮助…… $(document).ready(function () { $(‘#id_login_submit’).click(function () { var _authetication_Data = { _UserName: $(‘#u1’).val(), _Password: $(‘#p1’).val() } $.ajax({ type: “POST”, url: “/Account/ProcessLoginRequest”, data: JSON.stringify({ model: _authetication_Data }), dataType: “json”, contentType: “application/json; charset=utf-8”, success: function (response) { alert(response); } }); }); }); @using (Html.BeginForm()) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) @Html.LabelFor(m => m._UserName) @Html.TextBoxFor(m => m._UserName, new { […]

防止网络游戏上的AJAX作弊

上下文 我有一个JavaScript的网页游戏。 我在比赛期间用AJAX发送分数和成就。 所以任何人都可以查看源代码,复制此请求并欺骗我的游戏。 问题 知道怎么防止这个? 使用来自服务器的令牌(我从未使用过这个系统)? 码 jquery : $.post(‘ajax/score.php’, {pseudo: $pseudo, score: $score, achiev: $achiev}, function(data) { $(‘#loader’).show().delay(3000).fadeOut(1000); } ); php : if (isset($_POST[‘pseudo’]) && isset($_POST[‘score’]) && isset($_POST[‘achiev’])) { … }

是否可以使用jQuery加密AJAX调用以进行身份​​validation?

我是AJAX方法的新手(我最近才发现jQuery )。 我很想知道是否还有PHP设置上的用户身份validation; 牢固。 jQuery是否有任何特殊选项允许使用HTTPS(或任何其他方式来加密我的ajax调用)? 是的,我很可能只是将数据发布回服务器,但这会破坏乐趣。 🙂

限制ajax呼叫原点

我有一个facebook应用程序,一些function需要一些通过ajax运行的sript。 有没有办法确保只从我的应用程序内部调用脚本? 我使用jquery进行这样的ajax调用: $.post(‘script.php’, {var1: val1, var2: val2}, function(data){…}); 。 script.php中的代码运行一些sql查询,并检查所有请求的变量是否通过ajax调用传递。 我应该检查什么,以便脚本只能从我的应用程序调用而不是通过显式调用执行? 提前致谢。

安全地从jquery调用我的web api

我有一个简单的问题,可能指出一个复杂的答案:( 我有一个web api工作正常。 但现在我想设置身份validation/授权。 我需要它在所有平台上工作,但主要来自jQuery。 当然,我不希望以明文forms在管道中发送我的用户名和密码,如下所示: function GetAllCategories() { var credentials = $.base64.encode(‘r3plica:mypassword’); var authType = “Basic ” + credentials; $.ajax({ url: “http://localhost:18904/api/Categories”, type: “GET”, beforeSend: function (xhr) { xhr.setRequestHeader(“Authorization”, authType); }, success: function (data) { alert(‘Success!’); }, error: function () { alert(‘error’); } }); } 所以我一直在寻找其他选择。 是使用3腿OAuth的唯一选择吗? 我希望只是将查询字符串键/值传递给我的api并让它处理所有内容,但我无法找到一步一步的过程。 一切似乎都很复杂。 那么,有谁知道我能做什么? 我已阅读负载并试图实现大量的东西。 我设法让这个工作: http : […]

jQuery的$ .get()可以安全地调用不受信任的URL吗?

我最近了解到,jQuery的$.getJSON() 在不受信任的URL上调用是不安全的 。 那么$.get()呢? 当URL参数来自不受信任的来源时,jQuery的$.get()安全地调用,或者这是不安全的? 这是我正在进行的安全代码审查,以检查XSS漏洞。 示例代码模式: $.get(url, function (…) { … }) 如果攻击者恶意选择url ,此代码模式是否会创建XSS漏洞? 请假设该函数将安全地处理来自AJAX请求的响应,并且该url来自不受信任的来源(例如,其他一些用户)并且可以完全由对手控制。 我担心:如果攻击者选择了url ,攻击者是否可以选择恶意URL(例如,包含callback=?并指向他们自己的站点,或者类似的东西),这会导致jQuery猜测数据类型应该是JSONP ,启用JSONP,在文档中插入脚本标记,并以与getJSON()相同的方式引入XSS漏洞? (因为我没有将明确的dataType参数传递给$.get() ,所以jQuery会猜测数据类型,如文档中所述 。我不确定它的安全含义是什么。) 我在代码审查中遇到了这种代码模式,我试图了解它是否是一个潜在的漏洞。 我不是在寻找可以编写代码的替代方法; 相反,我想知道这种代码模式是否安全。 由于威胁模型有点棘手,让我举一个例子来帮助更好地理解这一点。 假设Bob是该服务的用户,他可以提供与其个人资料相关联的URL。 假设当Alice在浏览器中访问Bob的个人资料页面时,页面上的Javascript代码会获取Bob提供的URL并将其作为参数传递给$.get() 。 问题是,这样安全吗? 鲍勃可以用它来攻击爱丽丝吗? Bob可以触发Alice的浏览器执行任意Javascript代码,拥有Alice的所有权力吗? 正如链接问题所解释的那样, $.getJSON()在这种情况下是不安全的 – 但是$.get()呢? 它也不安全,还是安全的? 由于我收到了一些澄清请求,让我尝试以不同的方式解释/提出问题。 假设我正在进行代码审查以检查某些Javascript代码是否包含任何XSS漏洞,我看到以下代码行: $.get(url, function(resp) { /* do nothing */ }); 假设我知道url可以被攻击者完全控制。 这是否自动成为XSS漏洞? 或者这总是安全吗? 或者,如果答案是“它取决于”,它依赖于什么? 或者,另一种思考方式。 假设我正在进行代码审查,我看到以下代码行: $.get(url, f); […]

传递凭证不起作用

我试图通过传递凭证来进行json调用。 如果用户已使用Sql Membership登录系统,如何在不获取此信息的情况下传递凭据: 这是调用web.api的代码: 注意:正在从跨域调用:即www.project.com – > api.project.com var url = ‘http://api.project.com/LookUps/uploadtypes?callback=?’; $.ajax({ type: ‘GET’, url: url, async: true, xhrFields: { withCredentials: true }, jsonpCallback: ‘handler’, contentType: “application/javascript”, dataType: ‘jsonp’, success: function (json, textStatus, jqxhr) { console.log(jqxhr.responseText); }, error: function (json, textStatus, jqxhr) { console.log(jqxhr.responseText); } }); 编辑: 禁用身份validation时,我仍然可以登录。 是否有另一个窗口validation设置的地方?

在CakePHP表单中禁用使用安全组件和jQuery的输入元素

我在CakePHP中有一个表单,它有两个实时搜索文本输入。 当用户选择结果时,它们中的每一个都更新隐藏字段的值。 该模型称为Record ,涉及的属性是 budget_id program_id concept_id 我用这种方式使用FormHelper创建了一个表单: … Form->create(‘Record’) ?> Create a record Form->hidden(‘Record.budget_id’, array(‘value’ => $budget[‘Budget’][‘id’])) ?> Form->hidden(‘Record.program_id’) ?> Form->input(‘Record.program_id_search’, array(…)) ?> Form->hidden(‘Record.concept_id’) ?> Form->input(‘Record.concept_id_search’, array(…)) ?> Form->submit(‘Send’) ?> Form->end(); ?> … 如您所见,隐藏了存储模型属性的输入字段。 实时搜索框配置了jQuery的自动完成插件。 按照CakePHP手册的建议,我在beforeFilter方法中禁用了两个额外的字段,以便安全组件忽略它们并且表单通过validation: public function beforeFilter() { $this->Security->disabledFields = array( ‘Record.program_id_search’, ‘Record.concept_id_search’, ); } 每当我从Javascript更改隐藏输入的值时,CakePHP似乎都会生气,它会将我发送到blackhole方法。 根据文档,这没关系。 但令我惊讶的是,安全组件一直忽略我的disabledFields设置。 我一直在搜索几个网络资源,每个人都指向disabledFields选项。 但它对我不起作用。 有什么建议? 谢谢!! […]

为什么IE限制本地HTML页面的JavaScript文件?

当我们打开本地html文件时,为什么IE会限制JavaScript文件的运行? 消息说: “为了帮助保护您的安全,Internet Explorer已限制此网页运行可以访问您的计算机的脚本或ActiveX控件。单击此处查看选项” 任何人都可以告诉我如何摆脱这个?

PHP:帮助保护/过滤ajax调用

我试图找到一种方法来过滤ajax调用,以便为我的应用程序添加一个很好的安全层。 代码是否有任何意义? function is_ajax(){//Help Secure Ajax Calls if(isset($_SERVER[‘HTTP_X_REQUESTED_WITH’]) && $_SERVER[‘HTTP_X_REQUESTED_WITH’]==’XMLHttpRequest’) return; else die;//no ajax } 我的梦想只是让我的服务器(htm或php)中的文件通过ajax访问另一个php文件。 我想知道下面的代码是否会做得更好: if(strpos($_SERVER[‘REQUEST_URI’],’http://’)) die;//Help Secure From URL Include Attacks 谢谢。