gpt4 book ai didi

javascript - 有人可以离线编辑 javascript 文件来运行恶意代码吗?

转载 作者:太空狗 更新时间:2023-10-29 15:35:28 26 4
gpt4 key购买 nike

我担心与我网站的 javascript 文件相关的问题,我不确定这是否可行。

当有人访问网站时会下载js文件,如果有人编辑下载的js脚本并插入自己的代码,然后刷新网站怎么办。在新的刷新中,网站将读取编辑后的 ​​Js 文件并运行恶意代码。恶意代码可能用于以正常方式在服务器上运行某些代码。

示例:

一个用户只能在他的页面上发表文章:

HTML

文章形式只会在他的页面中显示给用户。

<?php
if( $user->id == $page->userID )
{
?>
<form>
<h1>Add new article:</h1><br />
<textarea name="articleText" cols="65" rows="3"></textarea>
<input class="SubmitArticle" id="<?php echo $userPage->id; ?>" name="SubmitArticle" type="button" value="Submit article" />
</form>
<?php
}
?>

Javascript

$(".SubmitArticle").click( function(e){
var targetPage = $(this).attr('id');
var thisForm = $(this).parent();
var postData = thisForm.serialize() + "&targetPage=" + targetPage;

$.post(document.location, postData, function(data) {
$('#mainDiv').html(data);
});
});

PHP

if( isset($_POST["SubmitArticle"]) )
{
$pageID = $_POST["targetPage"];
$text = $_POST["articleText"];

PublishArticle( $pageID , $text );
}

恶意代码:

在 JS 文件中插入代码以在其他用户页面上写文章(这是不允许的),攻击者使用查看页面源(假设 page_id=12)从 html 元素中读取页面 id:

postData = "SubmitArticle=1&targetPage=12&articleText='Muwhahahah'";
$.post(document.location, postData, function(data) {
});

如果可能的话,解决方案是什么?

最佳答案

我认为您对网络服务器的工作原理有一些误解。

从客户端的 Angular 来看,服务器发送给客户端的所有内容都是只读的。

假设您从互联网上下载了一个 zip 文件。然后修改并保存。保存过程将发生在您的硬盘驱动器上,而不是在服务器上。当您编辑本地文件(在您的示例中为 javascript 文件)时,它不会在服务器上进行编辑,只会在您的本地 PC 上进行编辑。

因此,您可以随意编辑/编辑您的本地文件。除非您以某种方式将它上传到服务器(例如 FTP),否则它只会在您的本地 PC 上。

考虑到这一点,您应该始终在服务器端验证数据,因为熟练的用户可以编辑您的 javascript 以删除数据验证并将其发送到服务器。

关于javascript - 有人可以离线编辑 javascript 文件来运行恶意代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21253166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com