Уязвимости XSS Scripting в java [duplicate]

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

// if I want to add search capabilities to my application and support multiple search
// engines such as google, yahoo, live, etc.

interface ISearchProvider
{
    string Search(string keywords);
}

, тогда я мог бы создать GoogleSearchProvider, YahooSearchProvider, LiveSearchProvider и т. Д.

// if I want to support multiple downloads using different protocols
// HTTP, HTTPS, FTP, FTPS, etc.
interface IUrlDownload
{
    void Download(string url)
}

// how about an image loader for different kinds of images JPG, GIF, PNG, etc.
interface IImageLoader
{
    Bitmap LoadImage(string filename)
}

, а затем создать JpegImageLoader, GifImageLoader, PngImageLoader и т. Д.

Большинство надстроек и систем плагинов работают с интерфейсами.

Еще одно популярное использование для шаблона репозитория. Скажем, я хочу загрузить список zip-кодов из разных источников

interface IZipCodeRepository
{
    IList<ZipCode> GetZipCodes(string state);
}

, тогда я мог бы создать XMLZipCodeRepository, SQLZipCodeRepository, CSVZipCodeRepository и т. Д. Для моих веб-приложений я часто создаю хранилища XML на ранней стадии, поэтому я могу получить что-то и запустить до того, как база данных Sql будет готова. Когда база данных будет готова, я напишу SQLRepository для замены версии XML. Остальная часть моего кода остается неизменной, так как она работает с интерфейсами.

Методы могут принимать интерфейсы, такие как:

PrintZipCodes(IZipCodeRepository zipCodeRepository, string state)
{
    foreach (ZipCode zipCode in zipCodeRepository.GetZipCodes(state))
    {
        Console.WriteLine(zipCode.ToString());
    }
}
1
задан Roman C 23 August 2015 в 09:55
поделиться

2 ответа

Dont mess фильтры и перехватчики, они совершенно разные вещи.

Чтобы облегчить работу Struts, я бы рекомендовал использовать перехватчики для предотвращения атак XSS. Играйте с этим параметром в контексте действия.

Если вы предпочитаете использовать фильтры, вам придется повторно ввести измененную переменную в запросе, это не очень хорошая практика.

0
ответ дан David Canós 22 August 2018 в 06:48
поделиться

Struts2 создает карту параметров из запроса с помощью request.getParameterMap() и помещает эти параметры в контекст действия. Таким образом, вы можете создать перехватчик, который получает эти параметры из контекста и делает то, что вы хотите. Добавьте новый перехватчик ко всем действиям либо с помощью настраиваемого стека, либо с помощью переопределенного действия.

1
ответ дан Roman C 22 August 2018 в 06:48
поделиться
Другие вопросы по тегам:

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