防止从 url 读取后端 url
Prevent the backend url to be read from url
我知道标题有点混乱,但我会在这里解释一下。
我有一个 CMS 供用户插入他们自己的信息。所以在页面里面是一个 URL 字段:
这意味着用户可以插入任何格式,例如
- https://backend.com
- www.backend.com
- backend.com
而这个 url 将在前端放置一个按钮。一旦点击它,将相应地重定向到 url。
现在我面临的问题是第 3 点 (backend.com) 格式。如果用户输入“backend,com”并点击前端的这个按钮,他们将被重定向到https://mywebsite.com/backend.com
。右边应该重定向到“backend.com”。
我正在使用 Laravel 并使用 {{$url}} 从数据库中读取数据。简化代码如下:
//html
<a id="book-submit">Book</a>
//javascript
$("#book-submit").on('click', function(){
$.ajax({
url: '',
type: "POST",
data:{
},success :function(response) {
window.location.href='{{$url}}';
}
})
});
//mysql
$check= DB::connection('mysql_api')->table('course')->select('url')->first();
$data['url'] = $check->url;
有什么方法可以防止这种情况发生吗?希望你们中的一些人能给我一些建议。谢谢!
要使用 window.location.href
引用另一个页面,您需要 http://
或 https://
- 如果您的数据库中已有数据 url 而没有
http://
或
https://
,需要像你一样按照自己的逻辑去操作
使用 strpos
或 `regex
- 您可以验证用户输入
对于某些信息,您可以使用[FILTER_VALIDATE_URL]
来验证URL
有关其他标志,请参阅 http://php.net/manual/en/filter.filters.validate.php
我知道标题有点混乱,但我会在这里解释一下。
我有一个 CMS 供用户插入他们自己的信息。所以在页面里面是一个 URL 字段:
这意味着用户可以插入任何格式,例如
- https://backend.com
- www.backend.com
- backend.com
而这个 url 将在前端放置一个按钮。一旦点击它,将相应地重定向到 url。
现在我面临的问题是第 3 点 (backend.com) 格式。如果用户输入“backend,com”并点击前端的这个按钮,他们将被重定向到https://mywebsite.com/backend.com
。右边应该重定向到“backend.com”。
我正在使用 Laravel 并使用 {{$url}} 从数据库中读取数据。简化代码如下:
//html
<a id="book-submit">Book</a>
//javascript
$("#book-submit").on('click', function(){
$.ajax({
url: '',
type: "POST",
data:{
},success :function(response) {
window.location.href='{{$url}}';
}
})
});
//mysql
$check= DB::connection('mysql_api')->table('course')->select('url')->first();
$data['url'] = $check->url;
有什么方法可以防止这种情况发生吗?希望你们中的一些人能给我一些建议。谢谢!
要使用 window.location.href
引用另一个页面,您需要 http://
或 https://
- 如果您的数据库中已有数据 url 而没有
http://
或https://
,需要像你一样按照自己的逻辑去操作 使用strpos
或 `regex - 您可以验证用户输入
对于某些信息,您可以使用[FILTER_VALIDATE_URL]
来验证URL
有关其他标志,请参阅 http://php.net/manual/en/filter.filters.validate.php