2016-01-10 3 views
1

На моей веб-странице я включил веб-камеру foscam. Он работал как шарм, пока я не переключил свой домен с http на https. Проблема заключается в том, что вам не разрешено общаться с сайтом, отличным от https (foscam может общаться только через http) с сайта https. Это, кажется, делает совершенно смысл, если вы думаете об этом с точки зрения безопасности, но я хотел бы знать, если есть способ вокруг него

Для интеграции веб-камеры, я использую этот скрипт:

<script language="JavaScript" type="text/javascript"> 

function reload() 
{ 
    setTimeout('reloadImg("refresh")',10) 
}; 

function reloadImg(id) 
{ 
    var obj = document.getElementById(id); 
    var date = new Date(); 
    obj.src = "http://www.somedomain.com/snapshot.cgi?user=username&pwd=mypw&t=" + Math.floor(date.getTime()/10); 
} 

@endif 
</script> 

и

<img src="http://www.somedomain.com/snapshot.cgi?user=username&pwd=mypw&t" name="refresh" id="refresh" onload='reload(this)' onerror='reload(this)'> 

Это все еще работает (хотя консоль действительно показывает ошибки, как

Mixed Содержание: страница на «https://www.somedomain.nl/webcam» был загружен через HTTPS, но запросил небезопасное изображение «http://www.somedomain.nl/snapshot.cgi?user=user&pwd=pass!&t=145244729934». Этот контент также должен обслуживаться через HTTPS.

Настоящая проблема, с которой я сталкиваюсь, - это кнопки управления веб-камерой. Для этого я использую такой код:

$("#left").click(function(){ 
      $.get("http://www.somedomain.nl/decoder_control.cgi?command=6&user=username&pwd=pass&onestep=1", 
function(data) {}); 
     }); 

Эти кнопки не работают, и генерировать следующее сообщение об ошибке в консоли:

Mixed Содержание: страница на «https://www.somedomain.nl/webcam» был загружен через HTTPS, но запросил небезопасную конечную точку XMLHttpRequest 'http://www.somedomain.nl/decoder_control.cgi?command=2&user=someuser&pwd=pass!&onestep=1'. Этот запрос заблокирован; содержимое должно быть передано через HTTPS.send @ jquery.js: 8625jQuery.extend.ajax @ jquery.js: 8161jQuery. (анонимная функция) @ jquery.js: 8306 (анонимная функция) @ веб-камера: 38jQuery.event.dispatch @ jquery .js: 4430elemData.handle @ jquery.js: 4116

Есть ли способ обойти это?

+1

Существует связанный с этим вопрос здесь (http://security.stackexchange.com/questions/56779/securing-remotely-accessible-ip-cameras-that-do-not-support-https), объясняя, как выставить камеру через https. Это связано, но если вы подключаетесь через интернет, это может стоить усилий. –

+1

Спасибо за ваше предложение. Сделать связь с камерой через https с помощью обратного прокси-сервера действительно было правильным способом. – ErikL

ответ

3

Вероятно, вы должны изменить HTTP на HTTPS:

$("#left").click(function(){ 
      $.get("https://www.somedomain.nl/decoder_control.cgi?command=6&user=username&pwd=pass&onestep=1", 
function(data) {}); 
     }); 

EDIT: link:

Метод, как использовать протокол HTTPS визит: Тип https://cameraip:https порт/в браузере непосредственно для входа камера.

Но эта функция требует новой прошивки:

Новая поддержка прошивки HTTPS, это улучшило безопасность при входе вашей камеры.

+0

спасибо, но камера FI8910W, которая не поддерживает https. Я смог сообщить об этом через https с помощью обратного прокси-сервера, как указано в этом уроке: https://bitsofinfo.wordpress.com/2012/07/20/securing-foscam-ip-camera-access-over-ssl- с-апаша-обращенно-проксирование / – ErikL