小编Mar*_* An的帖子

为什么 XMLHttpRequest 对象的属性只能通过 console.log() 打印?

var obj = new XMLHttpRequest();
console.log("Object.keys():",Object.keys(obj));
console.log("Object.getOwnPropertyNames():",Object.getOwnPropertyNames(obj))
console.log("Object.entries():",Object.entries(obj))
console.log("JSON.stringify():",JSON.stringify(obj))

console.log("console.log:"); console.log(obj)
Run Code Online (Sandbox Code Playgroud)

输出:

Object.keys(): []
Object.getOwnPropertyNames(): []
Object.entries(): []
JSON.stringify(): {}
console.log:
XMLHttpRequest {onreadystatechange: null, readyState: 0, timeout: 0, withCredentials: false, 上传: XMLHttpRequestUpload, ...}

如何在 javascript 中创建这样一个对象,其属性仅使用 打印console.log(obj),但不由上述任何函数返回?

我已经尝试使用constructor function, object.create()(with enumerable:false), Object.assign(), using来创建对象,getters从类中初始化,从扩展类中初始化等

javascript prototype xmlhttprequest prototypal-inheritance ecmascript-6

17
推荐指数
1
解决办法
544
查看次数

.NET代码访问安全性:有用还是过于复杂?

另请参阅任何现实世界的"代码访问安全性"吗?

我想就此得到一些其他意见......

我喜欢桌面应用程序的代码访问安全性的想法.但是在.NET的生命周期中,我不得不承认我从来没有真正遇到CAS实际上阻止某些东西给我带来好处的情况.

但是,我曾多次在映射驱动器上共享快速.NET应用程序这样简单的事情成为企业代码访问的噩梦.必须打破caspol.exe以创建可信路径规则并且没有明确的方法来了解为什么出现故障会使CAS看起来像开发和部署过程中的安慰一样.

我想听听一些CAS实际上帮助不仅仅是伤害的情况,或者是否有其他人对其当前的实施和默认情况感到沮丧.

.net security code-access-security

14
推荐指数
1
解决办法
1642
查看次数

CLR在SQL Server 2017上的严格安全性

MSDN对这篇文章说:

CLR使用.NET Framework中的代码访问安全性(CAS),不再支持它作为安全边界.使用PERMISSION_SET = SAFE创建的CLR程序集可能能够访问外部系统资源,调用非托管代码以及获取sysadmin权限.从SQL Server 2017开始,引入了名为clr strict security的sp_configure选项,以增强CLR程序集的安全性.默认情况下启用clr严格安全性,并将SAFE和EXTERNAL_ACCESS程序集视为标记为UNSAFE.可以禁用clr strict security选项以实现向后兼容性,但不建议这样做.Microsoft建议所有程序集都由证书或非对称密钥签名,并且相应的登录名已在master数据库中被授予UNSAFE ASSEMBLY权限.

如何创建CLR程序集PERMISSION_SET = SAFE可以访问外部系统资源,调用非托管代码以及获取sysadmin权限?

为什么不再支持CAS作为安全边界?

据我所知,CLR组件不再安全,这是非常不幸的.

.net sql-server sqlclr code-access-security sql-server-2017

14
推荐指数
2
解决办法
8660
查看次数

为什么 docker-compose 使用 user:group 999:999 创建目录/文件?

我使用docker-compose up了以下docker-compose.yml

version: '3.5'
services:
 mysql-server:
  image: mysql:5.7
  environment:
    - MYSQL_ROOT_PASSWORD=root_pwd
  volumes:
   - ./var/lib/mysql:/var/lib/mysql:rw
Run Code Online (Sandbox Code Playgroud)

该目录./var/lib/mysql最初不存在。

跑完后docker-compose up..

ls -al ./var/lib/mysql命令显示所有带有user:group 999:999.

我找不到999在我的系统中调用的用户或组。

为什么 docker-compose选择使用不存在的 uid:gid创建文件

就我而言,除非我更改所有权,否则我无法提交特定目录。但即使我这样做,在下一次运行时,也会docker-compose up将所有权再次更新为999:999.

上述问题的解决方案是什么?例如,有没有办法指示 docker-compose 使用特定的 uid:gid 对映射主机中的文件?

主机:ubuntu-18.04
docker-compose:1.22.0

docker file-ownership docker-compose docker-volume

14
推荐指数
1
解决办法
9011
查看次数

什么是 fesm2015 以及它与 esm2015 有何关系?

我知道 esm2015 指的是ecmascript 2015 规范(模块部分)描述的 ecmascript 模块

在一些库中node_modules/,我在目录旁边看到esm2015/另一个名为fesm2015/.

  • fesm2015 是什么
  • 扩展了 esm2015吗?
  • 规范描述吗?

node.js ecmascript-6 es6-modules

14
推荐指数
1
解决办法
8821
查看次数

由于过时的CAS策略,寻求替代AppDomain.CreateDomain(字符串,证据)

我正在通过Microsoft .Net Framework - 应用程序开发基础培训工具包第8章第2课:配置应用程序域

ShowWinIni是我想要执行的程序的程序集名称

object[] hostEvidence = { new Zone(SecurityZone.MyComputer) };
Evidence e = new Evidence(hostEvidence, null);

// Create an AppDomain.
AppDomain d = AppDomain.CreateDomain("New Domain", e);

// Run the assembly
d.ExecuteAssemblyByName("ShowWinIni");
Run Code Online (Sandbox Code Playgroud)

当我执行:

AppDomain d = AppDomain.CreateDomain("New Domain", e);
Run Code Online (Sandbox Code Playgroud)

我收到以下消息:"此方法隐式使用CAS策略,已被.NET Framework废弃.为了兼容性原因启用CAS策略,请使用NetFx40_LegacySecurityPolicy配置开关.请参阅http://go.microsoft .com/fwlink /?LinkID = 155570了解更多信息."

当我创建一个没有Evidence对象的AppDomain时,我可以正常执行程序集.

当然,我访问过http://go.microsoft.com/fwlink/?LinkID=155570,但我仍然对如何创建具有指定权限的应用程序域感到困惑.

我找到的下一个最有用的网站是http://msdn.microsoft.com/en-us/library/bb763046.aspx但我的StrongName对象计算为NULL.

StrongName fullTrustAssembly =
     typeof(Program).Assembly.Evidence.GetHostEvidence<StrongName>();
Run Code Online (Sandbox Code Playgroud)

程序是实现所有这些代码的类的名称.

提前感谢您的建议和提示!

c# privileges appdomain .net-4.0 code-access-security

11
推荐指数
2
解决办法
4217
查看次数

如何将端口从一个docker容器转发到另一个?

我经常看到将docker容器的端口暴露给主机的解决方案.

在我的情况下,我想将一个本地端口从一个容器转发到另一个容器.假设我在容器A上运行一个服务,该服务具有硬编码配置以访问localhost 3306上的db.但我想在容器B上运行db服务器.

从A-localhost向前移动的最佳方式是什么:3306到B-IP:3306

portforwarding docker

11
推荐指数
3
解决办法
5748
查看次数

CAS(代码访问安全性)的目的是什么?

我一直是许多Web应用程序的一部分,但从未使用过CAS,也许从来没有觉得需要使用相同的.

什么时候需要使用CAS?人们真的在他们的应用程序中使用它吗?

.net security code-access-security

8
推荐指数
1
解决办法
1602
查看次数

CMPXCHG16B对吗?

虽然我不确定为什么,但这似乎并不正确.建议会很棒,因为CMPXCHG16B的文档很少(我没有任何英特尔手册...)

template<>
inline bool cas(volatile types::uint128_t *src, types::uint128_t cmp, types::uint128_t with)
{
    /*
    Description:
     The CMPXCHG16B instruction compares the 128-bit value in the RDX:RAX and RCX:RBX registers 
     with a 128-bit memory location. If the values are equal, the zero flag (ZF) is set, 
     and the RCX:RBX value is copied to the memory location. 
     Otherwise, the ZF flag is cleared, and the memory value is copied to RDX:RAX.
     */
    uint64_t * cmpP = (uint64_t*)&cmp;
    uint64_t * withP = (uint64_t*)&with;
    unsigned char …
Run Code Online (Sandbox Code Playgroud)

c++ x86 code-access-security

8
推荐指数
2
解决办法
6119
查看次数

有没有办法将绑定到 127.0.0.1 的 docker 容器端口暴露给主机?

我在绑定到127.0.0.1:8888.
我想将此端口公开给主机。
docker-compose 支持这个吗?

我尝试了以下docker-compose.yml但没有奏效。

expose: 
  - "8888"
ports:
  - "8888:8888"
Run Code Online (Sandbox Code Playgroud)

PS 在我的情况下,将服务绑定到容器内的 0.0.0.0 是不可能的。


更新:提供一个简单的例子:

docker-compose.yml

version: '3'
services:  
  myservice:
    expose: 
      - "8888"
    ports:
      - "8888:8888"
    build: .
Run Code Online (Sandbox Code Playgroud)

Dockerfile

FROM centos:7
RUN yum install -y nmap-ncat
CMD ["nc", "-l", "-k", "localhost", "8888"]
Run Code Online (Sandbox Code Playgroud)

命令:

$> docker-compose up --build
$> # Starting test1_myservice_1 ... done
$> # Attaching to test1_myservice_1

$> nc -v -v localhost 8888
$> # Connection to localhost 8888 port [tcp/*] succeeded!
TEST
$> …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

8
推荐指数
1
解决办法
4436
查看次数