LESS css не работает, что не так с этой настройкой

Я новый для less css и пробует его. Я сделал следующее

Я добавил этот div

This is a test of LESS CSS

и в mystyles.less добавил это

.somepattern(@color: red, @size: 16px) {
    font-size:@size;
    font-weight:bold;
    border:2px solid @color;
}

.myclass {
    .somepattern();
}

Когда я меняю синтаксис на это, он работает, что означает, что проблема в синтаксисе вызов .somepattern . Я пробовал .somepattern () и .somepattern и somepattern , но ничего не работает. • найти одобренную сообществом реализацию, реализующую Альтернативное решение (перечисленное ниже) о том, как составить токен безопасности или безопасно доставить его на веб-страницу. Я также не буду претендовать на то, чтобы быть достаточно экспертом, чтобы развернуть мою собственную реализацию.

  • На заголовки реферера нельзя полагаться

  • Общие сведения

    В этом блоге описывается проблема CSRF, связанная с захватом JSON, и рекомендуется использование JSON POST для получения данных. Поскольку использование HTTP POST для GET данных не очень полно REST, я бы искал более RESTfull-решение, которое позволяет выполнять действия REST на сеанс или на страницу.

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

    Альтернативная реализация

    Для меня кажется естественным расширить использование ASP.NET MVC AntiForgeryToken с помощью jQuery HTTP GET для моего JSON.

    Например, если я ПОЛУЧАЮ некоторые конфиденциальные данные, согласно ссылке Haacked выше, следующий код уязвим :

    $.getJSON('[url]', { [parameters] }, function(json) {
        // callback function code
    });
    

    Я согласен с тем, что ПОЛУЧЕНИЕ данных с использованием рекомендованного обходного пути POST - это не RESTfull. Моя мысль состоит в том, чтобы отправить токен проверки в URL-адрес. Таким образом, злоумышленник в стиле CSRF не узнает полный URL. Кешированные или не кэшированные, они не смогут получить данные.

    Ниже приведены два примера того, как можно выполнить запрос JSON GET. Я не уверен, какая реализация наиболее эффективна, но могу предположить, что первая из них более безопасна от ошибочных прокси-серверов, кэширующих эти данные, что делает их уязвимыми для злоумышленников.

    http: // localhost: 54607 / Home / AdminBalances / ENCODEDTOKEN-TOKEN-HERE

    или

    http: // localhost: 54607 / Home / AdminBalances? ENCODEDTOKEN-TOKEN-HERE

    ... который также может быть AntiForgeryToken MVC3 или его вариантом ( см. swt ). Этот токен будет установлен как встроенное значение для любого формата URL, выбранного выше.

    Примеры вопросов, которые не позволяют мне развернуть собственное решение

    1. Какой формат URL (выше) вы бы использовали для проверки JSON GET (косая черта, вопросительный знак и т. д.) Будет ли прокси отвечать на http: // localhost: 54607 / Home / AdminBalances с помощью http: // localhost: 54607 / Home / AdminBalances? ENCODEDTOKEN-TOKEN-HERE данные?

    2. Как бы вы доставили этот закодированный токен на веб-страницу? Встроенный или как переменная страницы?

    3. Как бы вы составили токен? Встроенный в AntiforgeryToken или каким-либо другим способом?

    4. AntiForgeryToken использует cookie. Будет ли в этом случае использоваться / нужен резервный файл cookie? Только HTTP? А как насчет SSL в сочетании с HTTP Only?

    5. Как бы вы установили заголовки кеша? Что-нибудь особенное для Google Web Accelerator (например)

    6. Каковы последствия простого выполнения SSL-запроса JSON?

    7. Должен ли возвращаемый массив JSON по-прежнему быть заключен в объект только в целях безопасности?

    8. Как это будет это решение взаимодействует с предложенными Microsoft функциями шаблонов и привязки данных

    Вопросы, приведенные выше, являются причинами, по которым я не продвигаюсь вперед и не делаю этого сам. Не говоря уже о том, что, вероятно, я еще не задумывался над другими вопросами, но все же это риск.

    20
    задан goodguys_activate 6 February 2011 в 20:18
    поделиться