我正在试图弄清楚如何验证通过Shiny应用程序的URL传递的输入参数,以防止恶意输入。我不确定Shiny的内置enableBookmarking功能是否已经解决了这个问题;如果键入无效参数,则会将该输入重置为默认值。
1)这是否足够,安全性如何?
2)如果没有,可能有什么好办法解决它?我在考虑要求给定的输入与下拉列表选项匹配(即在%dateoptions中输入$ date%),但我不确定将其放在应用程序中的哪个位置。
这是一个简单的Shiny应用程序,带有URL书签:
dateoptions <- c("July 11 2016" = "07112016",
"July 14 2016" = "07142016",
"July 17 2016" = "07172016")
variableoptions <- c("GPS Altitude" = "GPS_ALT",
"Temperature" = "TEMPERATURE",
"Carbon dioxide" = "CO2")
ui <- function(request) {
fluidPage(
selectInput('date', 'Choose date:',
dateoptions),
selectInput('variable', 'Choose variable:',
variableoptions),
uiOutput("message")
)
}
server <- function(input, output, session) {
output$message <- renderUI(print(paste("The URL reflects your selection of", input$date, "and", input$variable)))
observe({
reactiveValuesToList(input)
session$doBookmark()
})
onBookmarked(function(url) {
updateQueryString(url)
})
}
shinyApp(ui, server, enableBookmarking = "url")
提前感谢您的帮助。