是否可以阻止浏览器访问文本文件,但仍允许JavaScript访问?

问题描述 投票:0回答:1

以下代码位于HTML文件内部,将本地.txt文件的内容读入Javascript字符串变量:

<script>
    window.onload=function(){
    var allText;
    readTextFile("/files/Textfile.txt");

    function readTextFile(file)
    // https://stackoverflow.com/a/14446538/8840617
    {
        var rawFile = new XMLHttpRequest();
        rawFile.open("GET", file, false);
        rawFile.onreadystatechange = function ()
        {
            if(rawFile.readyState === 4)
            {
                if(rawFile.status === 200 || rawFile.status == 0)
                {
                    allText = rawFile.responseText;
                }
            }
        }
        rawFile.send(null);
    }
}
</script>

JavaScript代码继续解析此文本以从allText中提取特定子字符串,然后最终在HTML中向用户显示此子字符串。

问题是任何访问者都可以通过单击浏览器中的“查看源”找到文本文件的路径,然后他们可以在浏览器中导航到文本文件以完整查看文件。

我不希望任何人能够看到此文本文件的完整内容。

那么,是否可以阻止访问者查看.txt文件,同时仍然允许我的.html网页将.txt文件中的数据作为字符串导入?

如果不可能,我该怎样才能完成这个效果呢?

javascript file private
1个回答
1
投票

不 - 这是对security through obscurity模型的尝试,而不是一个非常模糊的模型。您无法信任客户端或隐藏其中的信息。如果脚本可以看到它,恶意或好奇的用户也可以看到它。

解决方案是在您的服务器上公开某人应该能够看到的内容,而不是更多内容。如果内容对于特定用户是私有的,则需要在请求时设置某种登录和身份验证。

© www.soinside.com 2019 - 2024. All rights reserved.