小编use*_*696的帖子

如何在PHP中保护配置文件?

我正在开发一个PHP项目,为另一个程序员开发模板引擎.这个想法很简单:将会有一个带有模板的模板文件夹和带有页面的页面文件夹,php将获取模板并使用当前URL将页面插入其中.几年前我已经完成了这个没有面向对象的项目,但现在我正在努力做一个面向对象的焦点.

我面临的问题是配置问题.在原始系统中,我有一个硬编码配置的PHP文件(包含包含,javascript,页面等的文件夹的名称).在新的一个我想用XML存储这些数据,但问题是在这里搜索Stackexchange我发现了这个问题,如果我理解正确,如果我使用重写解决方案,它甚至不会被访问PHP脚本,所以我没有办法保护配置文件不被直接在浏览器中读取.

我应该如何处理这个?有没有比使用XML更好的解决方案?我也避免使用数据库,因为这太简单了,无法涉及mysql连接等等.我很确定有一种方法可以让XML只能从服务器内部读取,但我不确定这是否是最好的解决方案.

在这种情况下,有人可以告诉我如何处理吗?

首先十分感谢!

php xml security

3
推荐指数
1
解决办法
420
查看次数

Startup类是如何发挥作用的?

我一直在看ASP.NET API API默认项目,它带有ASP.NET身份验证,它使用Owin.我已经开始搜索它,并发现Owin旨在将应用程序与服务器分离,并且它的功能基于一个Startup真正在项目中退出的类.该类被分成两个文件,就像那样

public partial class Startup
{
    public void Configuration(IAppBuilder app)
    {
        ConfigureAuth(app);
    }
}

public partial class Startup
{
    static Startup()
    {
        PublicClientId = "self";

        UserManagerFactory = () => new UserManager<IdentityUser>(new UserStore<IdentityUser>());

        OAuthOptions = new OAuthAuthorizationServerOptions
        {
            TokenEndpointPath = new PathString("/Token"),
            Provider = new ApplicationOAuthProvider(PublicClientId, UserManagerFactory),
            AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
            AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
            AllowInsecureHttp = true
        };
    }

    public static OAuthAuthorizationServerOptions OAuthOptions { get; private set; }

    public static Func<UserManager<IdentityUser>> UserManagerFactory { get; set; }

    public …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-web-api owin

3
推荐指数
1
解决办法
8873
查看次数

OWIN和Katana - 中间件究竟是什么?

与Katana项目合作时,我们经常处理中间件.在ASP.NET网站上他们说

如前所述,当服务器接受来自客户端的请求时,它负责将其传递给OWIN组件管道,这些组件由开发人员的启动代码指定.这些管道组件称为中间件.

那没关系,但我完全不明白.起初我认为中间件是ASP.NET组件,如WebAPI,SignalR和所有这些.但是,在学习身份验证时,我看到了Cookie身份验证中间件.这个不是像WebAPI这样的整个框架,因此它不适合我最初的中间件概念.

那么Katana中间件到底是什么?它们只是可以集成在执行管道上并在环境字典上工作的代码片段?因此,它们可以是简单的组件,如身份验证中间件或与WebAPI等整个框架进行通信的接口?

asp.net owin katana

3
推荐指数
1
解决办法
799
查看次数

W3C验证器和HTTPS

我目前在使用W3C标记验证服务https://validator.w3.org和使用HTTPS时遇到了问题.当我输入网站地址时,https我得到以下回复:

抱歉! 无法检查此文档.

连同错误500说它无法连接到网站.此外,在网站页面上,我有一个链接,将该人员带入验证并显示该网站已经过验证.单击没有HTTPS的链接时,一切正常,但使用HTTPS,我收到一条消息

抱歉! 无法检查此文档.找不到Referer标题了!

我相信是因为安全连接没有发送referer标题对吗?

现在,我如何使用HTTPS并避免验证时出现这些问题?

ssl https w3c-validation

3
推荐指数
1
解决办法
2663
查看次数

Node.js开始读取特定行上的文件

在Node.js上,我们可以使用readline模块逐行读取文件:

var fs = require('fs');
var readline = require('readline');

var rl = readline.createInterface({
    input: fs.createReadStream('filepath');
});

rl.on('line', function(line) {
    console.log(`Line read: ${line}`);
});
Run Code Online (Sandbox Code Playgroud)

但是,如果我们想要开始阅读特定的行号怎么办?我知道当我们使用时,createReadStream我们可以传入一个start参数.这在文档中解释:

options可以包含startend值来从文件而不是整个文件中读取一系列字节.

但这里start有一个以字节为单位的偏移量,所以使用它来设置起始线似乎很复杂.

我们如何调整这种方法来开始读取特定行上的文件?

javascript node.js

3
推荐指数
1
解决办法
1653
查看次数

尝试在EF Core中使用`ThenInclude`时发生异常

我将Entity Framework Core和Repository Pattern一起使用,却遇到一个问题。

我有类CustomerCompany并且Email隐藏了与此处无关的内容,如下所示:

public class Email
{
    public int EmailId { get; protected set; }

    public string Address { get; protected set; }

    public string Description { get; protected set; }

    public Email(string address, string description)
    {
        if (string.isNullOrEmpty(address))
            throw new ArgumentException(nameof(address));

        if (string.isNullOrEmpty(description))
            throw new ArgumentException(nameof(description));

        this.Address = address;
        this.Description = description;
    }

    protected Email() { }
}

public class Company
{
    public int CompanyId { get; protected set; …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework entity-framework-core .net-core

3
推荐指数
1
解决办法
991
查看次数

为什么在写入正文后更改状态代码会返回504?

在ASP.NET 5中,我似乎以下代码在响应中给出了错误504:

public class Startup
{
    public void Configure(IApplicationBuilder app)
    {
        app.Use((next) => {

            return async (context) => {

                context.Response.StatusCode = 200;
                await context.Response.WriteAsync("Hello World");
                context.Response.StatusCode = 201;
                await context.Response.WriteAsync("Status code changed");

            };

        });
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道我们不应该以任意方式更改状态代码,但我的问题是:为什么更改它会产生问题?事实是,注释更改状态代码的行,并使用Response.WriteAsync两次,不会产生任何问题,但更改状态代码会给出.

当我们这样做时,它返回504状态代码.我认为这与响应发送给客户端的方式有关.它发生的原因是当我们调用Respose.WriteAsync响应消息时已经开始发送了吗?发生此错误的原因是什么?

c# owin asp.net-core

2
推荐指数
1
解决办法
403
查看次数

代表们如何指出方法?

在C#中,我们有值类型和引用类型.我很清楚一些代码

public class Employee
{
   // Code for Employee goes here 
}

public class Program
{
     public void Main(string[] args)
     {
          Employee someEmployee;
          someEmployee = new Employee();
          // Do something with someEmployee
     }
}
Run Code Online (Sandbox Code Playgroud)

当我们做员工一些员工; 运行时在堆栈上分配内存足以保存保存Employee数据的堆的地址.someEmployee = new Employee(); 然后在堆上分配内存,初始化所需的内容,最后将地址放在变量some​​Employee上.

然后堆上的内容就是Employee拥有的数据.很容易理解someWmployee持有对我们以前看到的包含数据的内存片段的引用.

现在,代表指向一个方法.但这意味着什么?什么意思指向一种方法?一个方法像其他数据一样保存在堆中?这让我感到困惑,因为一个方法不仅仅是一堆数据,而是一堆指令,那么存储指令应该是什么意思呢?

.net c# delegates memory-management

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