Javascript是一种客户端语言,因此可以读取和复制脚本。
现在考虑这个例子。
<html>
<head>
<title>title</title>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function () {
$('#user').blur(function () {
var dataString = 'user=' + user;
$.ajax({
type: "POST",
url: "insertUser.php",
data: dataString
}
}
}
</script>
<label for='user' >User:</label>
<input id="user" type="text" />
</body>
insertUser.php:
<?php
$user = filter_input(INPUT_POST, 'user');
if (isset($user)) {
require_once("class.Database.php");
$db = Database::getInstance();
$mysqli = $db->getConnection();
$stmt = $mysqli->prepare("INSERT INTO Users (User) VALUES (?)");
$stmt->bind_param("s", $user);
$stmt->execute();
}
有人可以在他的本地主机中编写一个脚本,用于使用 insertUser.php 的路径插入他自己的数据吗?无论如何要解决这个问题吗?
最佳答案
是的,任何人都可以将任何数据发送到您的 insertUser.php
关于保护,这取决于用例。检查谁在发送数据,授权任何应该授权的请求等。
最佳实践是对待来自外部的任何数据(无论它们来自哪里),就好像它们是最危险和恶意的一样。
关于javascript - 远程 javascript-ajax-php 攻击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29143155/