标签: nonce

通过经过身份验证的Webforms保护ASP.net中的Ajax请求

我已经通过GUID保护ajax请求阅读了 保护AJAX 请求 .现在让我解释一下我的场景,下面是可能有助于解释主题的代码片段.

[WebMethod[EnableSession = True]
[ScriptMethod]

    public static string CreateTitle(string strTitleName)
    {
    string strResult = "Custom jSon string";
    if(Session["Authorized"] == "True" && !String.IsNullOrEmpty(strTitleName))
    {
         String strTitle = Server.HtmlEncode(strTitleName);
         InsertRecordInDB(strTitle);
         strResult = "Custom jSOn string" + EncryptMD5("record id");
    }
           return strResult;
    }
Run Code Online (Sandbox Code Playgroud)

以下是在参数中发送的javascript调用.btnCreateTitle_click是按钮客户端的click事件.txtTitle是接受标题名称的文本框.在页面上创建验证器以验证文本框.CreateTitle是我使用scriptmanager调用的页面方法

function btnCreateTitle_Click(evnt){
if(Page.ClientValidate()){
if($get("txtTitle")){
PageMethods.CreateTitle($get("txtTitle").value,success,failure,context);
}}}
Run Code Online (Sandbox Code Playgroud)

函数成功显示创建标题的growl消息,并显示带有加密记录id的链接作为查询字符串到url以查看创建的标题的详细信息.

现在燃烧的问题,

  1. 这足够安全吗?我错过了什么?
  2. 我怎样才能让这个过程更安全,更快捷?

asp.net security webforms asp.net-ajax nonce

5
推荐指数
1
解决办法
1399
查看次数

Java身份验证库

我正在开发一个服务器/客户端Java应用程序,我需要在发送数据之前对客户端进行身份验证,我还需要在身份验证后加密发送的数据并确保其新鲜度

我想知道什么是我能用来做的最好的图书馆?

java authentication nonce

5
推荐指数
1
解决办法
6446
查看次数

Android InApp计费 - 真正的nonces是什么?

是的,我已经阅读了所有的文档@ developer.android.com,我确实理解了一切基本的例外 - 它是什么引入的.

由于来自Google Play的所有订单回复都是由不可访问的私钥签署的,并且正在通过配对的公钥进行验证(在我的情况下在外部服务器上,因此第三人也无法访问),简直(几乎)没有办法欺骗.

所有这些nonce只是保证购买的多余方式.而且,在以下情况下,文档对情况一无所知:

  1. 我买了一件物品;
  2. 生成nonce并将其发送到Google Play;
  3. 发生了撞车事故,所以我所有已知的哨声都丢失了;
  4. 让我的应用重新启动并从Google Play获得回调;
  5. ...由于没有认出nonce,拒绝接听此电话!

在上面描述的情况下,用户支付物品并且永远不会得到它,这是可耻的.当然,我可以将nonce存储在某个文件中,并在我的应用程序返回时重新读取它,但它违反了nonce的所有原则.

恕我直言,有人刚刚说"嘿,验证过程太简单了,让我们添加一些随机性更多的东西,它会变得更酷!".有人做了.

或者,如果我错过了,你会想到其他一些用例吗?否则我将从我的代码中删除整个nonces部分.

android in-app-purchase nonce in-app-billing

5
推荐指数
1
解决办法
2535
查看次数

从 WP_List_Table 验证随机数

我正在使用 WP_List_Table 在 WordPress 插件中设置批量操作。我想要允许的唯一批量操作是删除。我有一个删除项目的链接,该项目通过生成的随机数

wp_create_nonce( 'deletePoll' )
Run Code Online (Sandbox Code Playgroud)

当我点击链接时,它工作得很好。我正在处理代码中验证它

check_admin_referer( 'deletePoll' );
Run Code Online (Sandbox Code Playgroud)

但是,当我使用批量操作表单尝试删除时,我收到“您确定要执行此操作吗?” 信息。

我查看了 wp-admin/post.php,看看他们如何处理垃圾项目,除了它有效之外,它似乎完全相同。

php wordpress nonce

5
推荐指数
1
解决办法
1476
查看次数

使用安全性标头中的nonce从Java调用Soap Web服务

我正在尝试从Java调用Web服务。除了Web服务期望以用户名和密码以及随机数的形式提供某种安全性外,这基本上没有那么困难。当我尝试从SoapUi调用Web服务时,我看到原始消息看起来像这样:

<soapenv:Envelope xmlns:sch="http://somedomain.com/pe/ws/schema"
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header>
        <wsse:Security soapenv:mustUnderstand="1"
            xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
            xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
            <wsse:UsernameToken wsu:Id="UsernameToken-E70691ACBDEFEC750814238295617871">
                <wsse:Username>usr</wsse:Username>
                <wsse:Password
                    Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"
                    >pw</wsse:Password>
                <wsse:Nonce
                    EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"
                    >4smQZF5KMSktEXrQc0v5yw==</wsse:Nonce>
                <wsu:Created>2015-02-13T12:12:41.784Z</wsu:Created>
            </wsse:UsernameToken>
        </wsse:Security>
    </soapenv:Header>
    <soapenv:Body>
        <sch:EventSubmitRequest>
            <sch:Event>
                <sch:EventId>392</sch:EventId>
                <sch:Recoverable>false</sch:Recoverable>
            </sch:Event>
        </sch:EventSubmitRequest>
    </soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)

消息中显而易见的元素是用户名,密码和已创建,但让我感到困惑的是随机数。在示例中,该字段的值为4smQZF5KMSktEXrQc0v5yw ==,但是每个请求的值都不同(这很有意义,因为根据Wikipedia,随机数是仅使用一次的任意数字)。在四处搜索时,我找不到如何在Java中生成随机数的可用示例(尽管我确实在堆栈溢出时找到了一些php示例,但我无法轻松地验证它们是否起作用)。虽然我不介意自己构造该随机数,但我想知道这是否真的必要,但我有点希望这是Java中的标准功能。

以下是我正在使用的代码:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.xml.namespace.QName;
import javax.xml.soap.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;

public class soaptest {

    public static void main(String args[]) {
        try {
            // Create SOAP Connection
            SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
            SOAPConnection soapConnection = soapConnectionFactory.createConnection();

            // Send SOAP Message to SOAP Server
            String url = …
Run Code Online (Sandbox Code Playgroud)

java ws-security soap nonce

5
推荐指数
1
解决办法
1万
查看次数

WordPress nonce 未验证 WooCommerce 购物车操作

我已经构建了一个自定义的 WooCommerce 购物车,您可以在其中使用 AJAX 更改数量和/或从购物车中删除项目,但它有问题,我认为这与 WooCommerce 和 WordPress nonces 的有效性有关。

问题:

当您的购物车中有产品并且您至少刷新页面一次时 - 将产品添加到您的购物车后,它会起作用

当您第一次访问时,它不起作用,您将产品添加到购物车中并尝试编辑产品的数量,或尝试删除它。

https://staging.noten.nl/noten/上亲自查看- 请检查您的智能手机。将产品添加到购物车,单击它并更改值(多 250 克/少 250 克/删除产品)

PHP - Nonce 创建

/*
**  Theme scripts
*/
function scripts() {

    // Enqueue scripts
    wp_enqueue_script( 'noten-nl/js', Assets\asset_path('scripts/main.js?v=' . VERSION), ['jquery-core', 'wp-util'], null, true );

    // Localize script
    wp_localize_script( 'noten-nl/js', 'shop', array(
        'url'           => admin_url( 'admin-ajax.php' ),
        'cart_more'     => wp_create_nonce( 'cart-more-nonce' ),
        'cart_less'     => wp_create_nonce( 'cart-less-nonce' ),
        'cart_delete'   => wp_create_nonce( 'cart-delete-nonce' )
    )); …
Run Code Online (Sandbox Code Playgroud)

wordpress cart nonce woocommerce

5
推荐指数
1
解决办法
3231
查看次数

为什么应该避免基于时间的随机数?

在挑战-响应机制(和其他系统)中,建议不要使用基于时间的随机数。

为什么应该避免?

cryptography challenge-response nonce

5
推荐指数
1
解决办法
1247
查看次数

Webkit 浏览器中 Nonce-Attribute 为空?

我的代码中有一个奇怪的行为,但它仅出现在 webkit 浏览器(chrome + opera)中,并且仅在启用 SSL 的情况下出现。一般我在 script-tags 中使用 nonce-attribute,但只有特殊的用户组发送匹配的 http-header for nonce。因此,对于大多数访问者来说,这只是一个属性,而不是为了安全。

<script src="https://www.example.com/script.js" nonce="random-value"></script>
Run Code Online (Sandbox Code Playgroud)

在没有 SSL(仅 HTTP)的本地主机上,它工作正常,但使用 SSL(HTTPS)时,我在源代码中看到随机值,但在检查器/元素中是随机数属性为空。

<script src="https://www.example.com/script.js" nonce=""></script>
Run Code Online (Sandbox Code Playgroud)

在 Firefox 和 Edge 中显示此值。这是 webkit 中的错误、安全性还是我的错误,但为什么只在 webkit 中?Chrome 68.0.3440.84 与 Windows 10。

nonce content-security-policy

5
推荐指数
0
解决办法
879
查看次数

如何使用CSP(内容安全策略)在WebForms项目中将动态创建的脚本列入白名单?

是否有使用CSP(内容安全策略)在WebForms项目中将动态创建的脚本列入白名单的安全方法?

使用unsafe-inline如下所示它有效但不推荐.

context.Response.Headers.Append("Content-Security-Policy", string.Format("default-src 'none'; connect-src 'self'; font-src 'self'; img-src 'self' data: https:; style-src 'self'; script-src 'self' 'unsafe-inline'"));
Run Code Online (Sandbox Code Playgroud)

对于任何其他选项,例如nonce-(random),我们看到此CSP错误消息:

拒绝执行内联脚本,因为它违反了以下内容安全策略指令:"script-src'self'".要求内联执行,需要'unsafe-inline'关键字,散列或nonce.

在此输入图像描述

webforms scriptmanager nonce content-security-policy

5
推荐指数
1
解决办法
582
查看次数

内容安全策略随机数不适用于事件处理程序属性

我正在向一个站点添加 CSP 标头,该站点在采用严格的策略之前还有很长的路要走。有相当多的内联脚本,因此我使用 nonce- 来允许特定的内联脚本。我发现它不适用于onload带有 src 的脚本标记的属性。这是一个例子:

// header:
Content-Security-Policy: script-src self https: 'nonce-d3adbe3fed'

<script async defer src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" nonce="d3adbe3fed" onload="console.log('onload', _.VERSION)"></script>
Run Code Online (Sandbox Code Playgroud)

完整的工作演示位于https://brave-pasteur-0d438b.netlify.com/

Chrome 给出以下错误:

Refused to execute inline event handler because it violates the following Content Security Policy directive: "script-src self https: 'nonce-d3adbe3fed'". Either the 'unsafe-inline' keyword, a hash ('sha256-...'), or a nonce ('nonce-...') is required to enable inline execution.
Run Code Online (Sandbox Code Playgroud)

该消息表明应该可以使用随机数启用内联事件处理程序,但据我所知,随机数仅适用于内联脚本。

这只是一个演示,但用例是一个异步/延迟跟踪脚本,它加载跟踪库,然后在onload处理程序中对加载的库进行跟踪调用。

是否可以在一个onload或其他事件处理程序属性上使用随机数,或者我需要更改我的实现吗?使用script-src 'unsafe-inline'orscript-src-attr 'unsafe-inline'不是一个选项,因为这些是我专门试图解决的漏洞。并且将处理程序的内容onload放入脚本标记后面的单独脚本中也不是一个选项,因为脚本是async deferred …

javascript nonce content-security-policy

5
推荐指数
1
解决办法
1万
查看次数