【发布时间】:2021-02-28 21:07:42
【问题描述】:
当我从 HLS 文件的 URL 传递数据时,播放器停止工作,就好像它不存在一样:
<?php
$url = $_GET['player'];
?>
<!DOCTYPE html>
<html>
<head>
<title>Player HLS</title>
<script src="https://jwpsrv.com/library/FfMxTl3oEeSEiiIACxmInQ.js"></script>
</head>
<body>
<div id="aRzklaXf">Loading the player...</div>
<script type="text/javascript">
//var urlplay = "https://c6d34z8w3zavhqt3.ezcdn483.net:8443/hls/dcgmsy35q.m3u8?s=qm3aTTYK9EvvG8aHlbOGMg&e=1614565195";
var urlplay = "<?php echo $url; ?>";
var playerInstance = jwplayer("aRzklaXf");
playerInstance.setup({
//"file": "https://c6d34z8w3zavhqt3.ezcdn483.net:8443/hls/dcgmsy35q.m3u8?s=qm3aTTYK9EvvG8aHlbOGMg&e=1614565195",
"file": urlplay,
"height":"560",
"width":"50%",
stretching: "bestfit",
"image": "#",
"mediaid": "player",
"mute": false,
"autostart": false,
"cast": {
"appid": "player",
"logo": "https://i.ibb.co/Tgk2YrC/Logo.png",
},
});
</script>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
</body>
但如果我用这个var urlplay = "<?php echo $ulr; ?>"; 替换这个var urlplay = "https://c6d34z8w3zavhqt3.ezcdn483.net:8443/hls/dcgmsy35q.m3u8?s=qm3aTTYK9EvvG8aHlbOGMg&e=1614565195"; 它就可以了
为什么会这样,为什么不起作用?因为它是通过直接添加路由来工作的,而且不是手动使用 PHP 中使用的方法。
【问题讨论】:
-
您可以使用此代码进行 XSS 注入。
$url需要编码
标签: javascript php jwplayer