Jump to content
  • 0

отключить безопасность


iillyyaa2
 Share

Question

пытаюсь кое что сделать на html5 но наткнулся на безопасность, оказывается нельзя сохранять или изменять картинку, если она загружена с "другого урла" :dash: в чём опасность для юзера не понятно, увидит искаженную картинку ? :blink:

в одном месте нашел решение, у FF нужно в настройках поменять security.fileuri.strict_origin_policy

можно ли поменять это как то из скрипта (тоесть javascript-ом) ? т.к. это нужно не только на 1 моей машине, а на всех, кто будет смотреть. работать нужно именно с картинками с других сайтов.

Link to comment
Share on other sites

19 answers to this question

Recommended Posts

  • 0

Первый раз слышу. Яваскриптом менять настройки браузера, особенно безопасности, однозначно он не позволит, полагаю.

Что именно такое не получается реализовать?

Link to comment
Share on other sites

  • 0

вот, что хочу сделать:

<!DOCTYPE HTML>
<html><head><title>Untitled</title></head>
<body>

<style>canvas {border:1px solid;}</style>

<canvas id="imgOrg" width="200" height="200"></canvas>
<canvas id="imgNew" width="200" height="200"></canvas>

<script type="text/javascript">
var my={};
var canvas1=document.getElementById('imgOrg');
var imgOrg=canvas1.getContext('2d');

var canvas2=document.getElementById('imgNew');
var imgNew=canvas2.getContext('2d');

var img = new Image();
//img.src = "foto.jpg";
img.src = "http:/"+"/yandex.st/lego/_/X31pO5JJJKEifJ7sfvuf3mGeD_8.png";
img.onload = function () {
imgOrg.drawImage(img,0,0);
my.tt();
}

my.tt = function() {
var ar = imgOrg.getImageData(0,0,200,200);
imgNew.putImageData(ar, 0, 0);
}
</script>

</body>
</html>

это на html5, хочу загрузив в первый canvas картинку, её изменить и поместить во втором окошке. но низя менять с других доменов :(

естественно, если ставлю: img.src = "foto.jpg";

всё работает.

Link to comment
Share on other sites

  • 0

Трафик или объём данных? Можно не сохранять насовсем, а динамически граббить и отдавать скриптом то изображение, что запрошено клиентом.

трафик.. :(

я понимаю, можно вообще не сохранять, что получил, сразу отдал... вот только пользователи сгенерируют такой трафик... да и он двойной получится, на скачку и на отдачу.. не гуд :(

10 пользователей в сек захотят 100кб картинку, это 1мб/с

это 60мб/мин

это 3.6гб/ч

это 86 гигов в сутки и почти 3 терабайта в месяц..........

Link to comment
Share on other sites

  • 0

Хых... а вы хотели на мощностях вконтакта подняться ;)

Ну, в наше время, когда корабли простят и так далее... Вы уверены что такой прям у вас трафик будет, что железо расплавиться, а порты забьются? Может всё не так плохо?

Ещё вариант: а что если в .htaccess обыграть эту ситуацию? Вроде как запрашиваем локальный файл: /images/yandex.st/lego/_/X31pO5JJJKEifJ7sfvuf3mGeD_8.png

а сервер запросы к папке /images/ переводит на другой сервак? Сейчас гляну в гугле...

Link to comment
Share on other sites

  • 0

Ещё вариант: а что если в .htaccess обыграть эту ситуацию? Вроде как запрашиваем локальный файл: /images/yandex.st/lego/_/X31pO5JJJKEifJ7sfvuf3mGeD_8.png

а сервер запросы к папке /images/ переводит на другой сервак? Сейчас гляну в гугле...

браузер то переадресуется, а не сервер... значит браузер будет знать, что урл другой...

мне вообще не понятна эта безопасность, что такого я могу у юзера наделать, меняя картинку с другого урла :)

http://editor.pixastic.com/

они как то смогли обойти безопасность, можно подгрузить изображение с любого урла и его редактировать... но их библиотеки не работают, чего то не хватает в библиотеках, что бы с другого домена...

Link to comment
Share on other sites

  • 0

вот поглядите то что после слов Динамическое зеркало

вроде как ваша ситуация.

Кстати, 10 пользователей в секунду это огого... Вы благотворительный проект делаете с такой-то посещаемостью? И на бесплатном хостинге что ли? Имхо такой трафик, тем более развлекательный (насколько я догадываюсь) можно хоть как-то отбить на рекламе, ну и потянуть соответствующий хостинг. Имхо вы чего-то недоговариваете, или преувеличиваете популярность проекта :)

Link to comment
Share on other sites

  • 0

http://editor.pixastic.com/

они как то смогли обойти безопасность, можно подгрузить изображение с любого урла и его редактировать... но их библиотеки не работают, чего то не хватает в библиотеках, что бы с другого домена...

http://editor.pixastic.com/app/loadurl/?url=http://yandex.st/lego/_/X31pO5JJJKEifJ7sfvuf3mGeD_8.png

думаю они скриптом создают временную копию на своём сервере, не отдают сразу с чужого хоста картинку. Думаю это самое правильное, всё-таки решение. Хотя может с htaccess тоже фокус может получиться.

Link to comment
Share on other sites

  • 0

- в ActionScript для работы с данными с другого сервера применяется специальный файл (название стандартное чтоб его скрипт найти мог, само название не помню) который лежит у вас на сарвере и содержит список доменов с чьими данными разрешается работать. Может и в JavaScript чтото такое есть?...

- во вторых, на стороне "обкрадываемого" сервера можно например отсеивать запросы с чужим HTTP_REFERER... и вы не получите картинки. Думаю на всех боле-мене популярных ресурсах это проделывается.

Link to comment
Share on other sites

  • 0

трафик.. :(

я понимаю, можно вообще не сохранять, что получил, сразу отдал... вот только пользователи сгенерируют такой трафик... да и он двойной получится, на скачку и на отдачу.. не гуд :(

10 пользователей в сек захотят 100кб картинку, это 1мб/с

это 60мб/мин

это 3.6гб/ч

это 86 гигов в сутки и почти 3 терабайта в месяц..........

Так если у вас такая посещаемость, то сайт должен приносить некислое количество денег — с головой хватит, чтобы оплатить нормальный хостинг хотя бы типа такого.

Link to comment
Share on other sites

  • 0

Да, беда с английским. Как понял из статей про CORS (Cross-Origin Resource Sharing ) за безопасность взялись серьёзно и все возможности (какие бы они ни были) пропадут в ближайшем скором. Сайты сами должны будут раздавать права на свой "контент"(ну или как там), короче нужно будет писать вконтакте, чтобы они разрешили вашему сайту пользоваться их изображениями. Правда смогут ли они сами ещё осуществить поддержку CORS (ой что-то заговариваюсь походу), это вопрос...ну в любом случае, если вдруг это я всё в тему - http://www.w3.org/TR/cors/

  • Like 1
Link to comment
Share on other sites

  • 0

alexandr_v-vich, вконтакт естественно разрешит, ввели бы в html5, что то типа как у flash было бы гораздо удобнее... можно конечно на сайте написать, жмакни туда и туда, там то включи это, но это бред

Link to comment
Share on other sites

  • 0

блин, может кросдоменные и будут работать, но работа с изображением так и не доступна :((

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD, PUT, DELETE, XMODIFY');
header('Access-Control-Allow-Headers: Content-Type, X-Requested-With');

эти заголовки передаю у основного скрипта (html5)

и так же у картинки

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy