Я не на 100% уверен, что это работало бы, по крайней мере, не без попытки.
, Но кажется, как будто это должно быть возможно, хотя технически бросив вызов, чтобы записать серверной стороне скремблер HTML/CSS, который берет в качестве его входа нормальную страницу HTML + связанные файлы, и производит более или менее пустую страницу HTML, наряду с запутываемым файлом JavaScript, который способен к восстановлению страницы. JavaScript не мог только распечатать простые узлы DOM, конечно..., но он мог выложить сложный набор наложения, абсолютно расположенных отделений и абзацев, каждый содержащий одну букву, таким образом, он выходит совершенно читаемый.
Боты не смогут считать его, если они не будут иметь, используют полный механизм визуализации и достаточно AI для восстановления то, что видел бы человек.
Затем потому что это - автоматизированный процесс, можно повторно скремблировать сайт так часто, как Вы имеете вычислительную власть для - каждую минуту, или каждые десять минут, или каждый час, или даже каждая загрузка страницы.
Предоставленный, пишущий такой obfuscater было бы трудным, и вероятно не стоил бы того. Но это - мысль.
Взгляните на CSS-дружественные адаптеры управления ASP.NET 2.0 на веб-сайте ASP.NET.
Он не только удаляет большинство уродливых атрибутов, но и также добавляет теги thead
и tbody
.
Вы можете просто использовать файл скина (темы), например:
<asp:GridView runat="server" BorderStyle="None" CellSpacing="5"/>
, или вы можете написать ControlAdapter, в котором вы можете контролировать всю визуализацию GridView.
public class GridViewAdapter : System.Web.UI.WebControls.Adapters.WebControlAdapter
{
protected override void RenderContents(HtmlTextWriter writer)
{
GridView gridView = Control as GridView;
if (gridView != null)
{
writer.Indent++;
WritePagerSection(writer, PagerPosition.Top);
writer.WriteLine();
writer.WriteBeginTag("table");
writer.WriteAttribute("cellpadding", "0");
writer.WriteAttribute("cellspacing", "0");
writer.WriteAttribute("summary", Control.ToolTip);
...
затем добавьте адаптер в файл браузера:
<browsers>
<browser refID="Default">
<controlAdapters>
<adapter controlType="System.Web.UI.WebControls.GridView"
adapterType="CSSFriendly.GridViewAdapter" />
...