Относительные пути в Python

HTTP_ORIGIN - это способ защиты от запросов CSRF (межсайтовая подделка запросов). В настоящее время он реализован только Chrome (по состоянию на ноябрь 2011 года). Я тестировал Firefox и Opera - но они провалились. Его имя в заголовке запроса - «Происхождение». На стороне сервера в моем php-скрипте я вижу его как «HTTP_ORIGIN» в переменной $ _SERVER. Этот заголовок отправляется только в некоторых случаях, когда требуется защита от CSRF (достаточно только POST). Вот список всех запросов, установлен ли он или нет:

https://wiki.mozilla.org/Security/Origin

Якорный тег - НЕТ

Навигация по окну - НЕТ

IMG - НЕТ

iframe, embed, applet - ДА

Форма (GET и POST) - ДА

SCRIPT - ДА

таблицы стилей - НЕТ

зависимые загрузки из таблиц стилей - НЕТ

Перенаправления - ДА

XHR - ДА

Исходный заголовок реализовано только в Chrome, к сожалению. Впервые об этом было объявлено в январе 2010 года в блоге Google Chrome:

http://blog.chromium.org/2010/01/security-in-depth-new-security-features.html

Защита CSRF с помощью заголовка Origin

Заголовок Origin - это новая функция HTML5, которая помогает защитить ваш сайт от атак подделки межсайтовых запросов (CSRF). В CSRF-атаке вредоносный веб-сайт, например attacker.com, инструктирует браузер пользователя отправлять HTTP-запрос на целевой сервер, например example.com, который сбивает сервер example.com с какими-либо действиями. Например, если example.com является провайдером веб-почты, атака CSRF может подтолкнуть example.com к пересылке электронного письма злоумышленнику.

Заголовок Origin помогает сайтам защищаться от CSRF-атак, определяя, какой веб-сайт сгенерировал запрос. В приведенном выше примере example.com видит, что запрос поступил с вредоносного веб-сайта, поскольку заголовок Origin содержит значение http://attacker.com . Чтобы использовать заголовок Origin в качестве защиты CSRF, сайт должен изменять состояние только в ответ на запросы, в которых либо (1) отсутствует заголовок Origin, либо (2) имеется заголовок Origin с значением из белого списка.

Я просто внедряю защиту CSRF в своем php-скрипте, лично я использую Chrome, так что мне этого достаточно, я надеюсь, что другие браузеры скоро поймают chrome.

Что забавно, так это то, что Mozilla изобрела эту функцию безопасности, так как вы можете прочитать много документации о заголовке Origin на его веб-сайте, но у них все еще не было времени на ее реализацию; -)

HTTP_ORIGIN, кажется, содержит только «протокол» и «домен», без косой черты в конце: « http://www.example.com » - даже если вы отправили форму из « http: //www.example.com/myform/".

Простая защита от CSRF в сценарии PHP:

if ("POST" == 

HTTP_ORIGIN - это способ защиты от запросов CSRF (межсайтовая подделка запросов). В настоящее время он реализован только Chrome (по состоянию на ноябрь 2011 года). Я тестировал Firefox и Opera - но они провалились. Его имя в заголовке запроса - «Происхождение». На стороне сервера в моем php-скрипте я вижу его как «HTTP_ORIGIN» в переменной $ _SERVER. Этот заголовок отправляется только в некоторых случаях, когда требуется защита от CSRF (достаточно только POST). Вот список всех запросов, установлен ли он или нет:

https://wiki.mozilla.org/Security/Origin

Якорный тег - НЕТ

Навигация по окну - НЕТ

IMG - НЕТ

iframe, embed, applet - ДА

Форма (GET и POST) - ДА

SCRIPT - ДА

таблицы стилей - НЕТ

зависимые загрузки из таблиц стилей - НЕТ

Перенаправления - ДА

XHR - ДА

Исходный заголовок реализовано только в Chrome, к сожалению. Впервые об этом было объявлено в январе 2010 года в блоге Google Chrome:

http://blog.chromium.org/2010/01/security-in-depth-new-security-features.html

Защита CSRF с помощью заголовка Origin

Заголовок Origin - это новая функция HTML5, которая помогает защитить ваш сайт от атак подделки межсайтовых запросов (CSRF). В CSRF-атаке вредоносный веб-сайт, например attacker.com, инструктирует браузер пользователя отправлять HTTP-запрос на целевой сервер, например example.com, который сбивает сервер example.com с какими-либо действиями. Например, если example.com является провайдером веб-почты, атака CSRF может подтолкнуть example.com к пересылке электронного письма злоумышленнику.

Заголовок Origin помогает сайтам защищаться от CSRF-атак, определяя, какой веб-сайт сгенерировал запрос. В приведенном выше примере example.com видит, что запрос поступил с вредоносного веб-сайта, поскольку заголовок Origin содержит значение http://attacker.com . Чтобы использовать заголовок Origin в качестве защиты CSRF, сайт должен изменять состояние только в ответ на запросы, в которых либо (1) отсутствует заголовок Origin, либо (2) имеется заголовок Origin с значением из белого списка.

Я просто внедряю защиту CSRF в своем php-скрипте, лично я использую Chrome, так что мне этого достаточно, я надеюсь, что другие браузеры скоро поймают chrome.

Что забавно, так это то, что Mozilla изобрела эту функцию безопасности, так как вы можете прочитать много документации о заголовке Origin на его веб-сайте, но у них все еще не было времени на ее реализацию; -)

HTTP_ORIGIN, кажется, содержит только «протокол» и «домен», без косой черты в конце: « http://www.example.com » - даже если вы отправили форму из « http: //www.example.com/myform/".

Простая защита от CSRF в сценарии PHP:

[110]

Этот сценарий все еще можно обновить для поддержки ПОРТА, отличного от 80 (Источник содержит порт, отличающийся от 80), подключения HTTPS и отправку формы из разных поддоменов (например, sub.example.com => отправка запроса на www.example.com).

SERVER["REQUEST_METHOD"]) { if (isset(

HTTP_ORIGIN - это способ защиты от запросов CSRF (межсайтовая подделка запросов). В настоящее время он реализован только Chrome (по состоянию на ноябрь 2011 года). Я тестировал Firefox и Opera - но они провалились. Его имя в заголовке запроса - «Происхождение». На стороне сервера в моем php-скрипте я вижу его как «HTTP_ORIGIN» в переменной $ _SERVER. Этот заголовок отправляется только в некоторых случаях, когда требуется защита от CSRF (достаточно только POST). Вот список всех запросов, установлен ли он или нет:

https://wiki.mozilla.org/Security/Origin

Якорный тег - НЕТ

Навигация по окну - НЕТ

IMG - НЕТ

iframe, embed, applet - ДА

Форма (GET и POST) - ДА

SCRIPT - ДА

таблицы стилей - НЕТ

зависимые загрузки из таблиц стилей - НЕТ

Перенаправления - ДА

XHR - ДА

Исходный заголовок реализовано только в Chrome, к сожалению. Впервые об этом было объявлено в январе 2010 года в блоге Google Chrome:

http://blog.chromium.org/2010/01/security-in-depth-new-security-features.html

Защита CSRF с помощью заголовка Origin

Заголовок Origin - это новая функция HTML5, которая помогает защитить ваш сайт от атак подделки межсайтовых запросов (CSRF). В CSRF-атаке вредоносный веб-сайт, например attacker.com, инструктирует браузер пользователя отправлять HTTP-запрос на целевой сервер, например example.com, который сбивает сервер example.com с какими-либо действиями. Например, если example.com является провайдером веб-почты, атака CSRF может подтолкнуть example.com к пересылке электронного письма злоумышленнику.

Заголовок Origin помогает сайтам защищаться от CSRF-атак, определяя, какой веб-сайт сгенерировал запрос. В приведенном выше примере example.com видит, что запрос поступил с вредоносного веб-сайта, поскольку заголовок Origin содержит значение http://attacker.com . Чтобы использовать заголовок Origin в качестве защиты CSRF, сайт должен изменять состояние только в ответ на запросы, в которых либо (1) отсутствует заголовок Origin, либо (2) имеется заголовок Origin с значением из белого списка.

Я просто внедряю защиту CSRF в своем php-скрипте, лично я использую Chrome, так что мне этого достаточно, я надеюсь, что другие браузеры скоро поймают chrome.

Что забавно, так это то, что Mozilla изобрела эту функцию безопасности, так как вы можете прочитать много документации о заголовке Origin на его веб-сайте, но у них все еще не было времени на ее реализацию; -)

HTTP_ORIGIN, кажется, содержит только «протокол» и «домен», без косой черты в конце: « http://www.example.com » - даже если вы отправили форму из « http: //www.example.com/myform/".

Простая защита от CSRF в сценарии PHP:

[110]

Этот сценарий все еще можно обновить для поддержки ПОРТА, отличного от 80 (Источник содержит порт, отличающийся от 80), подключения HTTPS и отправку формы из разных поддоменов (например, sub.example.com => отправка запроса на www.example.com).

SERVER["HTTP_ORIGIN"])) { $address = "http://".

HTTP_ORIGIN - это способ защиты от запросов CSRF (межсайтовая подделка запросов). В настоящее время он реализован только Chrome (по состоянию на ноябрь 2011 года). Я тестировал Firefox и Opera - но они провалились. Его имя в заголовке запроса - «Происхождение». На стороне сервера в моем php-скрипте я вижу его как «HTTP_ORIGIN» в переменной $ _SERVER. Этот заголовок отправляется только в некоторых случаях, когда требуется защита от CSRF (достаточно только POST). Вот список всех запросов, установлен ли он или нет:

https://wiki.mozilla.org/Security/Origin

Якорный тег - НЕТ

Навигация по окну - НЕТ

IMG - НЕТ

iframe, embed, applet - ДА

Форма (GET и POST) - ДА

SCRIPT - ДА

таблицы стилей - НЕТ

зависимые загрузки из таблиц стилей - НЕТ

Перенаправления - ДА

XHR - ДА

Исходный заголовок реализовано только в Chrome, к сожалению. Впервые об этом было объявлено в январе 2010 года в блоге Google Chrome:

http://blog.chromium.org/2010/01/security-in-depth-new-security-features.html

Защита CSRF с помощью заголовка Origin

Заголовок Origin - это новая функция HTML5, которая помогает защитить ваш сайт от атак подделки межсайтовых запросов (CSRF). В CSRF-атаке вредоносный веб-сайт, например attacker.com, инструктирует браузер пользователя отправлять HTTP-запрос на целевой сервер, например example.com, который сбивает сервер example.com с какими-либо действиями. Например, если example.com является провайдером веб-почты, атака CSRF может подтолкнуть example.com к пересылке электронного письма злоумышленнику.

Заголовок Origin помогает сайтам защищаться от CSRF-атак, определяя, какой веб-сайт сгенерировал запрос. В приведенном выше примере example.com видит, что запрос поступил с вредоносного веб-сайта, поскольку заголовок Origin содержит значение http://attacker.com . Чтобы использовать заголовок Origin в качестве защиты CSRF, сайт должен изменять состояние только в ответ на запросы, в которых либо (1) отсутствует заголовок Origin, либо (2) имеется заголовок Origin с значением из белого списка.

Я просто внедряю защиту CSRF в своем php-скрипте, лично я использую Chrome, так что мне этого достаточно, я надеюсь, что другие браузеры скоро поймают chrome.

Что забавно, так это то, что Mozilla изобрела эту функцию безопасности, так как вы можете прочитать много документации о заголовке Origin на его веб-сайте, но у них все еще не было времени на ее реализацию; -)

HTTP_ORIGIN, кажется, содержит только «протокол» и «домен», без косой черты в конце: « http://www.example.com » - даже если вы отправили форму из « http: //www.example.com/myform/".

Простая защита от CSRF в сценарии PHP:

[110]

Этот сценарий все еще можно обновить для поддержки ПОРТА, отличного от 80 (Источник содержит порт, отличающийся от 80), подключения HTTPS и отправку формы из разных поддоменов (например, sub.example.com => отправка запроса на www.example.com).

SERVER["SERVER_NAME"]; if (strpos($address,

HTTP_ORIGIN - это способ защиты от запросов CSRF (межсайтовая подделка запросов). В настоящее время он реализован только Chrome (по состоянию на ноябрь 2011 года). Я тестировал Firefox и Opera - но они провалились. Его имя в заголовке запроса - «Происхождение». На стороне сервера в моем php-скрипте я вижу его как «HTTP_ORIGIN» в переменной $ _SERVER. Этот заголовок отправляется только в некоторых случаях, когда требуется защита от CSRF (достаточно только POST). Вот список всех запросов, установлен ли он или нет:

https://wiki.mozilla.org/Security/Origin

Якорный тег - НЕТ

Навигация по окну - НЕТ

IMG - НЕТ

iframe, embed, applet - ДА

Форма (GET и POST) - ДА

SCRIPT - ДА

таблицы стилей - НЕТ

зависимые загрузки из таблиц стилей - НЕТ

Перенаправления - ДА

XHR - ДА

Исходный заголовок реализовано только в Chrome, к сожалению. Впервые об этом было объявлено в январе 2010 года в блоге Google Chrome:

http://blog.chromium.org/2010/01/security-in-depth-new-security-features.html

Защита CSRF с помощью заголовка Origin

Заголовок Origin - это новая функция HTML5, которая помогает защитить ваш сайт от атак подделки межсайтовых запросов (CSRF). В CSRF-атаке вредоносный веб-сайт, например attacker.com, инструктирует браузер пользователя отправлять HTTP-запрос на целевой сервер, например example.com, который сбивает сервер example.com с какими-либо действиями. Например, если example.com является провайдером веб-почты, атака CSRF может подтолкнуть example.com к пересылке электронного письма злоумышленнику.

Заголовок Origin помогает сайтам защищаться от CSRF-атак, определяя, какой веб-сайт сгенерировал запрос. В приведенном выше примере example.com видит, что запрос поступил с вредоносного веб-сайта, поскольку заголовок Origin содержит значение http://attacker.com . Чтобы использовать заголовок Origin в качестве защиты CSRF, сайт должен изменять состояние только в ответ на запросы, в которых либо (1) отсутствует заголовок Origin, либо (2) имеется заголовок Origin с значением из белого списка.

Я просто внедряю защиту CSRF в своем php-скрипте, лично я использую Chrome, так что мне этого достаточно, я надеюсь, что другие браузеры скоро поймают chrome.

Что забавно, так это то, что Mozilla изобрела эту функцию безопасности, так как вы можете прочитать много документации о заголовке Origin на его веб-сайте, но у них все еще не было времени на ее реализацию; -)

HTTP_ORIGIN, кажется, содержит только «протокол» и «домен», без косой черты в конце: « http://www.example.com » - даже если вы отправили форму из « http: //www.example.com/myform/".

Простая защита от CSRF в сценарии PHP:

[110]

Этот сценарий все еще можно обновить для поддержки ПОРТА, отличного от 80 (Источник содержит порт, отличающийся от 80), подключения HTTPS и отправку формы из разных поддоменов (например, sub.example.com => отправка запроса на www.example.com).

SERVER["HTTP_ORIGIN"]) !== 0) { exit("CSRF protection in POST request: detected invalid Origin header: ".

HTTP_ORIGIN - это способ защиты от запросов CSRF (межсайтовая подделка запросов). В настоящее время он реализован только Chrome (по состоянию на ноябрь 2011 года). Я тестировал Firefox и Opera - но они провалились. Его имя в заголовке запроса - «Происхождение». На стороне сервера в моем php-скрипте я вижу его как «HTTP_ORIGIN» в переменной $ _SERVER. Этот заголовок отправляется только в некоторых случаях, когда требуется защита от CSRF (достаточно только POST). Вот список всех запросов, установлен ли он или нет:

https://wiki.mozilla.org/Security/Origin

Якорный тег - НЕТ

Навигация по окну - НЕТ

IMG - НЕТ

iframe, embed, applet - ДА

Форма (GET и POST) - ДА

SCRIPT - ДА

таблицы стилей - НЕТ

зависимые загрузки из таблиц стилей - НЕТ

Перенаправления - ДА

XHR - ДА

Исходный заголовок реализовано только в Chrome, к сожалению. Впервые об этом было объявлено в январе 2010 года в блоге Google Chrome:

http://blog.chromium.org/2010/01/security-in-depth-new-security-features.html

Защита CSRF с помощью заголовка Origin

Заголовок Origin - это новая функция HTML5, которая помогает защитить ваш сайт от атак подделки межсайтовых запросов (CSRF). В CSRF-атаке вредоносный веб-сайт, например attacker.com, инструктирует браузер пользователя отправлять HTTP-запрос на целевой сервер, например example.com, который сбивает сервер example.com с какими-либо действиями. Например, если example.com является провайдером веб-почты, атака CSRF может подтолкнуть example.com к пересылке электронного письма злоумышленнику.

Заголовок Origin помогает сайтам защищаться от CSRF-атак, определяя, какой веб-сайт сгенерировал запрос. В приведенном выше примере example.com видит, что запрос поступил с вредоносного веб-сайта, поскольку заголовок Origin содержит значение http://attacker.com . Чтобы использовать заголовок Origin в качестве защиты CSRF, сайт должен изменять состояние только в ответ на запросы, в которых либо (1) отсутствует заголовок Origin, либо (2) имеется заголовок Origin с значением из белого списка.

Я просто внедряю защиту CSRF в своем php-скрипте, лично я использую Chrome, так что мне этого достаточно, я надеюсь, что другие браузеры скоро поймают chrome.

Что забавно, так это то, что Mozilla изобрела эту функцию безопасности, так как вы можете прочитать много документации о заголовке Origin на его веб-сайте, но у них все еще не было времени на ее реализацию; -)

HTTP_ORIGIN, кажется, содержит только «протокол» и «домен», без косой черты в конце: « http://www.example.com » - даже если вы отправили форму из « http: //www.example.com/myform/".

Простая защита от CSRF в сценарии PHP:

[110]

Этот сценарий все еще можно обновить для поддержки ПОРТА, отличного от 80 (Источник содержит порт, отличающийся от 80), подключения HTTPS и отправку формы из разных поддоменов (например, sub.example.com => отправка запроса на www.example.com).

SERVER["HTTP_ORIGIN"]); } } }

Этот сценарий все еще можно обновить для поддержки ПОРТА, отличного от 80 (Источник содержит порт, отличающийся от 80), подключения HTTPS и отправку формы из разных поддоменов (например, sub.example.com => отправка запроса на www.example.com).

202
задан baudtack 27 May 2009 в 10:43
поделиться

2 ответа

В файле со сценарием вы хотите сделать что-то вроде этого:

import os
dirname = os.path.dirname(__file__)
filename = os.path.join(dirname, 'relative/path/to/file/you/want')

Это даст вам абсолютный путь к файлу, который вы ищете. Обратите внимание: если вы используете setuptools, вам, вероятно, следует использовать его API ресурсов пакета .

ОБНОВЛЕНИЕ : я отвечаю на комментарий здесь, поэтому могу вставить образец кода. : -)

Правильно ли я полагаю, что __ file __ не всегда доступен (например, когда вы запускаете файл напрямую, а не импортируете его)?

Я предполагаю, что вы имеете в виду __main __ , когда вы упоминаете запуск файла напрямую. Если так, то в моей системе (python 2.5.1 в OS X 10.5.7) это не так:

#foo.py
import os
print os.getcwd()
print __file__

#in the interactive interpreter
>>> import foo
/Users/jason
foo.py

#and finally, at the shell:
~ % python foo.py
/Users/jason
foo.py

Однако я знаю, что есть некоторые особенности с __ file __ на Расширения C. Например,

272
ответ дан 23 November 2019 в 05:00
поделиться

См. sys.path При инициализации при запуске программы первый элемент этого списка, путь [0], является каталогом, содержащим сценарий, который использовался для вызова интерпретатора Python.

Используйте этот путь в качестве корневой папки, из которой вы применяете свой относительный путь

>>> import sys
>>> import os.path
>>> sys.path[0]
'C:\\Python25\\Lib\\idlelib'
>>> os.path.relpath(sys.path[0], "path_to_libs") # if you have python 2.6
>>> os.path.join(sys.path[0], "path_to_libs")
'C:\\Python25\\Lib\\idlelib\\path_to_libs'
11
ответ дан 23 November 2019 в 05:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: