我在PHP中有一个变量,我需要在我的JavaScript代码中使用它的值.如何将我的变量从PHP变为JavaScript?
我的代码看起来像这样:
<?php
...
$val = $myService->getValue(); // Makes an API and database call
?>
Run Code Online (Sandbox Code Playgroud)
我有需要的JavaScript代码,val并且看起来如下:
<script>
myPlugin.start($val); // I tried this, but it didn't work
<?php myPlugin.start($val); ?> // This didn't work either
myPlugin.start(<?=$val?> // This works sometimes, but sometimes it fails
</script>
Run Code Online (Sandbox Code Playgroud) 今天早些时候,有人询问有关网络应用中输入验证策略的问题.
在撰写本文时,最重要的答案建议PHP只使用htmlspecialchars和mysql_real_escape_string.
我的问题是:这总是足够的吗?还有更多我们应该知道的吗?这些功能在哪里崩溃?
我已经看到了很多相互矛盾的答案.很多人都喜欢引用单独的php函数不会保护你免受xss的攻击.
什么XSS确实可以通过htmlspecialchars和什么可以通过htmlentities?
我理解功能之间的区别,但不是你留下的不同级别的xss保护.谁能解释一下?
我是一个对在线安全一无所知的PHP/MySQL菜鸟.
你能指点我一些有助于我的知识的资源吗?(初学者级别,请!)
可能重复:
在PHP站点中避免xss攻击的最佳做法是什么
我需要在PHP代码中防止XSS攻击,这有什么好的和简单的库吗?
我正在玩我的小PHP项目,我很惊讶我应该如何处理图像处理.据我所知,它是您在服务器中托管图像或让用户提供链接.鉴于我的应用程序是在共享主机站点上,哪一个更好?有什么风险?
嘿大家,我正在尝试在我的网站上添加某种类型的评论系统,以便我在主页上发布新闻.我想要它做的是有任何人评论它(他们不需要登录).评论提交表单只需要一个名称和评论.最简单的方法是什么?让它显示当前新闻帖中有多少评论也是很好的.我不需要任何花哨的东西.谢谢!
我正在尝试使我编写的 PHP 应用程序安全,并且有一个关于转义输出的问题。一旦我了解到这样做可以防止 SQL 注入,我就转而使用带有 PDO 的准备好的语句,并且似乎另一种主要的攻击类型是 XSS。我像这样构建页面的输出(假设变量中包含来自数据库的数据):
$output = '';
$output .= '
<div style="float: left; width: 800px;">
<span>Name:</span><span> ' . $name . '</span>
<span>Address:</span><span>' . $addr . '</span>
<span>Time:</span><span>' . time() . '</span>
</div>';
$output .='[lots more html]';
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是,我是否应该使用htmlentities()正在输出的数据库中的每条数据(典型的页面有数十个,可能有数百个来自正在输出的数据库的变量)?
好的,今天我在构建的系统上有很好的经验.有些人"砍掉"了所有东西,并说这是一个ajax问题.这就是他对我说的话:
当我访问用户的浏览器时你依赖于AJAX 我可以访问你为他写的所有AJAX函数,所以我可以用你的javascript写的任何东西都假装成那个用户
这绝对是一个非常糟糕的 - 如何通过ajax访问用户脚本?另外我在服务器上使用节点但无法实现问题所在.. ajax的例子:
var transfer_data = {
id: jQuery(this).data('spin-id')
};
jQuery.ajax({
url: init_s.forms.provably.callback,
type: 'POST',
dataType: 'JSON',
data: transfer_data,
success: function (data) {
console.log(data);
if (data.type == 'failed') {
jQuery('#check_modal').modal('toggle');
} else {
// add data
}
}, error: function (e) {
console.log(e.message);
}
});
Run Code Online (Sandbox Code Playgroud)
以及运行节点脚本的示例:
socket.on('new_spin_entry', function (data) { ... });
socket.emit('new_spin_entry', {
entry_id: data.user_spin_data.id
});
Run Code Online (Sandbox Code Playgroud)
那到底是什么?这怎么可能?
PS我忘了提到他在页面中加载的脚本中插入警报.不是服务器脚本,而是加载到用户的脚本
我有一个表格,用户可以填写新闻文章.这包含标题和正文.对于每个具有唯一标题的页面,我在<title>-tags中使用用户输入(标题):
<title>$userinput</title>
Run Code Online (Sandbox Code Playgroud)
我想知道 - 用户是否可以通过这种方式执行XSS攻击?我应该使用htmlspecialchars?来逃避此用户输入吗?
这同样适用于<meta>-tags.我正在使用用户输入进行描述:
<meta name="description" content="$userinput" />
Run Code Online (Sandbox Code Playgroud)
用户可以执行跨站脚本攻击<title>和<meta>标签都有效?