<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A Prospective Analysis of Security Vulnerabilities within Link Traversal-Based ery Processing</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ruben Taelman</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ruben Verborgh</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>6th Workshop on Storing, erying and Benchmarking Knowledge Graphs (WeDa) at ISWC 2022</institution>
          ,
          <addr-line>virtual</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>IDLab, Department of Electronics and Information Systems, Ghent University - imec</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>e societal and economic consequences surrounding Big Data-driven platforms have increased the call for decentralized solutions. However, retrieving and querying data in more decentralized environments requires fundamentally different approaches, whose properties are not yet well understood. Link-Traversal-based ery Processing (LTQP) is a technique for querying over decentralized data networks, in which a client-side query engine discovers data by traversing links between documents. Since decentralized environments are potentially unsafe due to their non-centrally controlled nature, there is a need for client-side LTQP query engines to be resistant against security threats aimed at the query engine's host machine or the query initiator's personal data. As such, we have performed an analysis of potential security vulnerabilities of LTQP. is article provides an overview of security threats in related domains, which are used as inspiration for the identification of 10 LTQP security threats. is list of security threats forms a basis for future work in which mitigations for each of these threats need to be developed and tested for their effectiveness. With this work, we start filling the unknowns for enabling query execution over decentralized environments. Aside from future work on security, wider research will be needed to uncover missing building blocks for enabling true data decentralization.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>primarily tackled from a Big Data standpoint so far. However, if decentralization efforts such as Solid
will become a reality, we need to be prepared for the need to query over a huge number of data sources.
For example, decentralized social networking applications will need to be able to query over networks
of friends containing hundreds or thousands of data documents. As such, we need new query tech‐
niques that are specifically designed for such levels of decentralization. A promising technique to
achieve this is Link-Traversal-based ery Processing (LTQP) [2, 3]. LTQP is able to query over a set of
documents that are connected to each other via links. An LTQP engine typically starts from one or
more documents, and traverses links between them in a crawling-manner to resolve the given query.</p>
      <p>
        Since LTQP is still a relative young area of research, there are still a number of open problems that
need to be tackled, notably result completeness and query termination [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Aside from these known is‐
sues, we also state the importance of security. Security is a highly important and well-investigated topic
in the context of Web applications [4, 5], but it has not yet been investigated in the context of LTQP. As
such, we investigate in this article security issues related to LTQP engines, which may threaten
the integrity of the user’s data, machine, and user experience, but also lead to privacy issues if personal
data is unintentionally leaked. Specifically, we focus on data-driven security issues that are inherent to
LTQP due to the fact that it requires a query engine to follow links on the Web, which is an uncon‐
trolled, unpredictable and potentially unsafe environment. Instead of analyzing a single security threat
in-depth, we perform a broader high-level analysis of multiple security threats.
      </p>
      <p>
        Since LTQP is still a relatively new area of research, its real-world applications are currently limited.
As such, we can not learn from security issues that arose in existing systems. Instead of waiting for –
potentially unsafe– widespread applications of LTQP, we draw inspiration from related domains that
are already well-established. Specifically, we draw inspiration from the domains of crawling and Web
browsers in Section 2, and draw links to what impact these known security issues will have on LTQP
query engines. In Section  3, we introduce a guiding use case that will be used to illustrate different
threats. Aer that, we discuss our method of categorizing vulnerabilities in Section 4. Next, we list 10
data-driven security vulnerabilities related to LTQP in Section 5, which are derived from known vulner‐
abilities in similar domains, and through analysis of the LTQP implementation within the Comunica
query engine [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Finally, we discuss the future of LTQP security and conclude in Section 6.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2.  Related Work</title>
      <p>is section lists relevant related work in the topics of LTQP and security.</p>
    </sec>
    <sec id="sec-3">
      <title>2.1. Link-Traversal-Based ery Processing</title>
      <p>
        More than a decade ago, Link-Traversal-based ery Processing (LTQP) [3, 2] was been introduced
as an alternative query paradigm for enabling query execution over document-oriented interfaces.
ese documents are usually Linked Data [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] serialized using any RDF serialization. RDF is suitable for
LTQP and decentralization because of its global semantics, which allows queries to be wrien indepen‐
dently of the schemas of specific documents. In order to execute these queries, LTQP processing occurs
over live data, and discovers links to other documents via the follow-your-nose principle during query
execution. is is in contrast to the typical query execution over centralized database-oriented inter‐
2 / 14
faces such as SPARQL endpoints, where data is assumed to be loaded into the endpoint beforehand, and
no additional data is discovered during query execution.
      </p>
      <p>
        Concretely, LTQP typically starts off with an input query and a set of seed documents. e query en‐
gine then dereferences all seed documents via an HTTP GET request, discovers links to other documents
inside those documents, and recursively dereferences those discovered documents. Since document dis‐
covery can be a very long (or infinite) process, query execution happens during the discovery process
based on all the RDF triples that are extracted from the discovered documents. is is typically done by
implementing these processes in an iterative pipeline [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Furthermore, since this approach can lead to
a large number of discovered documents, different reachability criteria [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] have been introduced to re‐
strict what links to follow for a given query.
      </p>
      <p>
        So far, LTQP research in the area of security has been limited. One work has indicated the impor‐
tance of trustworthiness [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] during link traversal, as people may publish false or contradicting infor‐
mation, which would need to be avoided or filtered out during query execution. Another work men‐
tioned the need for LTQP engines to adhere to robots.txt files [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] in order to not lead to unintention‐
al denial of service aacks of data publishers. Given the focus of our work on data-driven security vul‐
nerabilities in LTQP engines, we only consider this issue of trustworthiness further in this work, and
omit the security vulnerabilities from a data publisher’s perspective.
      </p>
    </sec>
    <sec id="sec-4">
      <title>2.2. Vulnerabilities Of RDF ery Processing</title>
      <p>Research involving the security vulnerabilities of RDF query processing has been primarily focused
on injection aacks within Web applications that internally send SPARQL queries to a SPARQL end‐
point [4, 5, 12, 13]. So far, no research has been done on vulnerabilities specific to RDF federated query‐
ing or link traversal.</p>
    </sec>
    <sec id="sec-5">
      <title>2.3. Linked Data Access Control</title>
      <p>
        Kirrane et al. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] surveyed the existing approaches for achieving access control in RDF, for both au‐
thentication and authorization. e authors mention that only a minority of those works apply specifi‐
cally to the document-oriented nature of Linked Data. ey do however mention that
non-Linked-Dataspecific approaches could potentially be applied to Linked Data in future work. To the best of our
knowledge, no security vulnerabilities have yet been identified for any of these.
      </p>
    </sec>
    <sec id="sec-6">
      <title>2.4. Web Crawlers</title>
      <p>
        Web crawling  [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] is a process that involves collecting information on the Web by following links
between pages. Web crawlers are typically used for Web indexing to aid search engines. Focused crawl‐
ing [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] is a special form of Web crawling that prioritizes certain Web pages, such as Web pages about
a certain topic, or domains for a certain country. LTQP can therefore be considered as an area of fo‐
cused crawling where the priority lies in achieving query results.
      </p>
      <p>
        One related work in this area involves abusing crawlers to initiate aacks on other Web sites  [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
is may cause performance degradation on the aacked Web site, or could even cause the crawling
agent to be blocked by the server. ese aacks involve convincing the crawler to follow a link to a
third-party Web site that exploits a certain vulnerability, such as an SQL injection. Additionally, this
work describes a type of aack that allows vulnerable Web sites to be used for improving the PageR‐
ank [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] of an aacker-owned Web site via forged backlinks.
3 / 14
      </p>
      <p>Some other works focus on mitigation of so-called crawler traps [19, 20] or spider traps. ese are
sets of URLs that cause an infinite crawling process, which can either be intentional or accidental. Such
crawler traps can have multiple causes:</p>
      <p>Links between dynamic pages that are based on URLs with query parameters;
Infinite redirection loops via using the HTTP 3xx range;
Links to search APIs;
Infinitely paged resources, such as calendars;
Incorrect relative URLs that continuously increase the URL length.</p>
      <p>
        Crawler traps are mostly discovered through human intervention when many documents in a single
domain are discovered. Recently, a new detection technique was introduced [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] that aempts to mea‐
sure the distance between documents, and rejects links to documents that are too similar.
      </p>
    </sec>
    <sec id="sec-7">
      <title>2.5. Web Browsers</title>
    </sec>
    <sec id="sec-8">
      <title>3.  Use Case</title>
      <p>4 / 14</p>
      <p>In this section, we introduce a use case that will be used to illustrate the security threats discussed
throughout this article.</p>
      <p>
        We assume a Web with public and private information, which may for instance be achieved via per‐
sonal data vaults following the principles of the Solid ecosystem [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. is data vault is in full control of
the owner, and they can host any kind of file in here, such as Linked Data files.
      </p>
      <p>For this use case, we assume the existence of three people (Alice, Bob, and Carol), each having their
own personal data vault. Alice uses her vault to store an address book containing the people she knows.
Instead of storing contact details directly in the address book, she stores links to the profiles of her con‐
tacts (Bob and Carol). Bob and Carol can then self-define their own contact details. Fig. 1 shows an il‐
lustration of this setup.</p>
      <p>e LTQP paradigm is well-suited to handle query execution over such setups. If Alice for instance
would like to obtain the names of all her contacts, she could initiate a query starting from her address
book as seed document, and the query engine would follow the links to her contacts, and obtain the
names from their respective profiles. Some documents may require authentication before they can be
accessed, for which Alice’s query engine makes use of Alice’s identity. In all threats throughout this ar‐
ticle, we assume that Carol has malicious intentions that Alice is unaware of.</p>
      <p>In this use case, two main roles can be identified. e first is the role of data publisher, which is taken
up by Alice, Bob, and Carol though their personal data vaults. e second is the role of the query initia‐
tor, which here applies to Alice, as she issues a query over her contacts.</p>
    </sec>
    <sec id="sec-9">
      <title>4.  Classification Of Security Vulnerabilities</title>
      <p>In this section, we first introduce the background on classifying security vulnerabilities in soware.
Aer that, we introduce a classification method specifically for the LTQP domain, to assess the validity
of our work.</p>
    </sec>
    <sec id="sec-10">
      <title>4.1. Background</title>
      <p>
        Security vulnerabilities in soware can be classified using many different methods [25, 26]. Generic
classification methods oen result in very large taxonomies, which are shown to result in practical
problems [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] due to their size and complexity.
5 / 14
      </p>
      <p>
        Seacord et al.  [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] claim that classification methods must be based on engineering analysis of the
problem domain, instead of being too generic. For this, they suggest the use of domain-specific aribut‐
es for classifying security vulnerabilities for each domain separately. Furthermore, they introduce the
following terminology for security vulnerabilities, by building upon earlier formal definitions of vulner‐
abilities [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]:
Security Flaw A defect in a soware application or component that, when combined with the neces‐
sary conditions, can lead to a soware vulnerability.
      </p>
      <p>Vulnerability A set of conditions that allows violation of an explicit or implicit security policy.
Exploit A technique that takes advantage of a security vulnerability to violate an explicit or implicit
security policy.</p>
      <p>Mitigation Techniques to prevent or limit exploits against vulnerabilities.</p>
      <p>
        For the remainder of this article, we will make use of this terminology, and we adopt a method here‐
aer for classifying soware vulnerabilities specific to the LTQP domain as recommended by Seacord et
al. [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ].
      </p>
    </sec>
    <sec id="sec-11">
      <title>4.2. Classification Method</title>
      <p>Our classification method considers the listing of several security vulnerabilities. Each vulnerability
has one or more possible exploits, which may take advantage of this vulnerability. e different proper‐
ties of each exploit are shown in Table 1.</p>
      <sec id="sec-11-1">
        <title>Attribute</title>
        <p>Aacker
Victim
Impact
Difficulty</p>
      </sec>
      <sec id="sec-11-2">
        <title>Values</title>
        <p>Data publisher, …
LTQP engine, query initiator, data publisher, …
Incorrect query results, system crash, …
Easy, medium, hard</p>
      </sec>
    </sec>
    <sec id="sec-12">
      <title>5.  Data-Driven Vulnerabilities</title>
      <p>As shown before in Subsection 2.2, most research on identifying security vulnerabilities within RDF
query processing focuses on the query itself as a means of aacking, mostly through injection tech‐
niques. Since LTQP engines also accept queries as input, these existing techniques will therefore also
apply to LTQP engines.</p>
      <p>In this work, we acknowledge the importance of these vulnerabilities, but we instead place our aen‐
tion onto a new class of vulnerabilities that are specific to LTQP engines as a consequence of the open
and uncontrolled nature of data on the Web. Concretely, we consider two main classes of security vul‐
nerabilities to LTQP engines:
1. ery-driven: vulnerabilities that are caused by modifying queries that are the input to certain
query engines.
2. Data-driven: vulnerabilities that are caused by the presence, structuring, or method of publishing
data on the Web.
6 / 14</p>
      <p>To the best of our knowledge, all existing work on security vulnerabilities within RDF querying has
focused on query-driven vulnerabilities. Given its importance for LTQP engines, we focus on data-dri‐
ven vulnerabilities for the remainder of this work.</p>
      <p>Hereaer, we explain and classify each vulnerability using the classification method from Section  4.
For each vulnerability, we provide at least one possible example of an exploit based on our use case.</p>
      <p>Unless mentioned otherwise, we do not make any assumptions about specific forms or semantics of
LTQP, which can influence which links are considered. e only general assumption we make is that we
have an LTQP query engine that follows links in any way, and executes queries over the union of the
discovered documents.</p>
    </sec>
    <sec id="sec-13">
      <title>5.1. Unauthoritative Statements</title>
      <p>
        A consequence of the open-world assumption [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] where anyone can say anything about anything,
is that both valid and invalid (and possibly malicious) things can be said. When a query engine is tra‐
versing the Web, it is therefore possible that it can encounter information that impacts the query results
in an undesired manner. is information could be untrusted [10, 28], contradicting, or incorrect. With‐
out mitigations to this vulnerability, query results from an LTQP can therefore never be really trusted,
which brings the practical broad use of LTQP into question.
      </p>
      <sec id="sec-13-1">
        <title>Exploit: producing untrusted query results by adding unauthoritative triples</title>
        <p>Given our use case, Carol could for instance decide to add one additional triple to her profile, such as:
&lt;https://bob.pods.org/profile#me&gt; :name "Dave". She would therefore indicate that Bob’s name is
“Dave”. is is obviously false, but she is “allowed” to state this under the open world assumption.
However, this means that if Alice would naively query for all her friend’s names via LTQP, she would
have two names for Bob appear in her results, namely “Bob” and “Dave”, where this second result may
be undesired.</p>
        <p>Attacker Data publisher (Carol)
Impact Untrusted query results
Difficulty Easy (adding triples to an RDF document)</p>
      </sec>
    </sec>
    <sec id="sec-14">
      <title>5.2. Intermediate Result And ery Leakage</title>
      <p>is vulnerability assumes the existence of a hybrid LTQP query engine that primarily traverses
links, but can exploit database-oriented interfaces such as SPARQL endpoints if they are detected in
favour of a range of documents. Furthermore, we assume a range of documents that require authentica‐
tion, as their contents are not accessible to everyone. ery engines typically decompose queries into
smaller sub-queries, and join these intermediate results together aerwards. In the case of a hybrid
LTQP engine, intermediate results that are obtained from the traversal process from non-public docu‐
ments could be joined with data from a discovered SPARQL endpoint. An aacker could therefore set
up an interface that acts as a SPARQL endpoint, but is in fact a malicious interface that intercepts
intermediate results from LTQP engines.</p>
      <sec id="sec-14-1">
        <title>Exploit: capturing intermediary results via malicious SPARQL endpoint</title>
        <p>Based on our use case, Carol could include a triple with a link to the SPARQL endpoint at http://
attacker.com/sparql. If Alice makes use of a hybrid LTQP engine with an adaptive query planner, this
7 / 14
internal query planner could decide to make use of this malicious endpoint once it has been discovered.
Depending on the query planner, this could mean that non-public intermediate results from the tra‐
versal process such as Bob’s telephone are used as input to the malicious SPARQL endpoint. Other
query planning algorithms could even decide to send the full original SPARQL query to the malicious
endpoint. Depending on the engine and its query plan, this could give the aacker knowledge of inter‐
mediate results, or even the full query. is vulnerability enables aackers to obtain insights into user
behaviour, which is a privacy concern. A more critical problem is when private data is being leaked that
normally exists behind access control, such as bank account numbers.</p>
        <p>Attacker SPARQL endpoint publisher (Carol)
Victim Intermediary results of the LTQP engine of Alice
Impact Leakage of (intermediary) query results
Difficulty Medium (seing up a malicious SPARQL endpoint)</p>
      </sec>
    </sec>
    <sec id="sec-15">
      <title>5.3. Session Hijacking</title>
      <p>
        In this vulnerability, we assume the presence of some form of authentication (such as
WebIDOIDC [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]) that leads to an active authenticated session. is vulnerability is similar to that of Web
browsers, where the session token can be compromised through the or session token prediction. Such
a vulnerability could lead to cross-domain request forgery (CSRF) [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] aacks, where an aacker forces
the user to perform an action while authenticated without the user’s consent.
      </p>
      <sec id="sec-15-1">
        <title>Exploit: triggering unintended operations on SPARQL endpoint behind access control</title>
        <p>For example, we assume that Alice has a flawed SPARQL endpoint running at
http://myendpoint.com/sparql, which requires Alice’s session for accepting read and write queries. Alice’s
query engine may have Alice’s session stored by default for when she wants to query against her own
endpoint. If Carol knows this, she could add a malicious triple with a link to
http://myendpoint.com/sparql?query=DELETE * WHERE { ?s ?p ?o } in her profile. While the SPARQL proto‐
col only allows update queries via HTTP POST, Alice’s flawed query engine could implement this incor‐
rectly so that update queries are also accepted via HTTP GET. If Alice executes a query over her ad‐
dress book, the query engine could dereference this link with her session enabled, which would cause
her endpoint to be cleared. is vulnerability is however not specific to SPARQL endpoints, but may oc‐
cur on any type of Web API that allows modifying data via HTTP GET requests.</p>
        <p>Attacker Data publisher (Carol)
Victim Alice’s stored data
Impact Removal or modification of Alice’s stored data
Difficulty Easy (adding a malicious link to flawed endpoint)</p>
      </sec>
    </sec>
    <sec id="sec-16">
      <title>5.4. Cross-Site Data Injection</title>
      <p>is vulnerability concerns ways by which aackers can inject data or links into documents. For in‐
stance, HTTP GET parameters are oen used to parameterize the contents of documents. If such para‐
meters are not properly validated or escaped, they can be used by aackers to include malicious data or
links.
8 / 14</p>
      <sec id="sec-16-1">
        <title>Exploit: injecting untrusted links via flawed trusted API</title>
        <p>For example, assuming Alice executes a query over a page from Carol, and a compromised API
http://trusted.org/?name that dynamically creates RDF responses based on the ?name HTTP GET pa‐
rameters. In this case, the API simply has a Turtle document template into which the name is filled in as
a literal value, but it does not do any escaping. We assume Alice decides to fully trust all links from
http://trusted.org/ to other pages, but only trusts information directly on Carol’s page or links to
other trusted domains. If Carol includes a link to &lt;http://trusted.org/?name=Bob". &lt;&gt; rdfs:seeAlso
&lt;http://hacker.com/invalid-data&gt;. &lt;&gt; foaf:name "abc"", then this would cause the API to produce
a Turtle document that contains a link to http://hacker.com/invalid-data, which would lead to un‐
wanted data to be included in the query results.
Difficulty Easy (adding triples to an RDF document)</p>
      </sec>
    </sec>
    <sec id="sec-17">
      <title>5.5. Arbitrary Code Execution</title>
      <p>
        Advanced crawlers such as the Googlebot [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] allow JavaScript logic to be executed for a limit dura‐
tion, since certain HTML pages are built dynamically via JavaScript at the client-side. In this vulnerabil‐
ity, we assume a similar situation for LTQP, where Linked Data pages may also be created client-side
via an expressive programming language such as JavaScript. is would in fact already be applicable to
HTML pages that dynamically produce JSON-LD script tags or RDFa in HTML via JavaScript. In order
to query over such dynamic Linked Data pages, a query engine must initiate a process similar to
Googlebot’s JavaScript execution phase. Such a process does however open the door to potentially ma‐
jor security vulnerabilities if malicious code is being read and executed by the query engine during
traversal.
      </p>
      <sec id="sec-17-1">
        <title>Exploit: manipulate local files via overprivileged JavaScript execution</title>
        <p>For example, we assume that Alice’s LTQP query engine executes JavaScript on HTML pages before
extracting its RDFa and JSON-LD. Furthermore, this LTQP engine has a security flaw that allows exe‐
cuted JavaScript code to access and manipulate the local file system. Carol could include a malicious
piece of JavaScript code in her profile that makes use of this flaw to upload all files on the local file sys‐
tem to the aacker, and deletes all files aerwards so that she can hold Alice’s data for ransom.
Attacker Data publisher (Carol)
Victim Files on machine in which Alice’s query engine runs
Impact Removal or modification of files on Alice’s machine
Difficulty Easy (adding JavaScript code to a document)</p>
      </sec>
    </sec>
    <sec id="sec-18">
      <title>5.6. Link Traversal Trap</title>
      <p>LTQP by nature depends on the ability of iteratively following links between documents. It is howev‐
er possible that such link structures cause infinite traversal paths and make the traversal engine
get trapped, either intentional or unintentional, just like crawler traps. Given this reality, LTQP query
9 / 14
engines must be able to detect such traps. Otherwise, query engines could never terminate, and possibly
even produce infinite results.</p>
      <sec id="sec-18-1">
        <title>Exploit: forming a link cycle</title>
        <p>
          A link cycle is a simple form of link traversal trap that could be formed in different ways. First, at the
application-level, Carol’s profile could contain a link path to document X, and document X could con‐
tain a link path back to Carol’s profile. Second, at the HTTP protocol-level, Carol’s server could return
for her profile’s URL an (HTTP 3xx) redirect chain to URL X, and URL X could contain a redirect chain
back to the URL of her profile. ird, at the application level, a cycle structure could be simulated via
virtual pages that always link back to similar pages, but with a different URL. For example, the Linked
Open Numbers [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ] project generates a long virtual sequence of natural numbers, which could produce
a boleneck when traversed by an LTQP query engine.
        </p>
        <p>Attacker Data publisher (Carol)</p>
      </sec>
    </sec>
    <sec id="sec-19">
      <title>5.7. System Hogging</title>
      <p>e user interface compromise vulnerability for Web browsers includes aacks involving CPU and
memory hogging through (direct or indirect) malicious code execution or by exploiting soware flaws.
Such vulnerabilities also exist for LTQP query engines, especially regarding the use of different RDF se‐
rializations, and their particularities with respect to parsing.</p>
      <sec id="sec-19-1">
        <title>Exploit: producing infinite RDF documents</title>
        <p>
          For example, RDF serializations such as Turtle [
          <xref ref-type="bibr" rid="ref32">32</xref>
          ] are implicitly designed as to allow streaming seri‐
alization and deserialization. JSON-LD even explicitly allows this through its Streaming JSON-LD
note [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ]. Due to this streaming property, RDF documents of infinite size can be generated, since serial‐
izations place no limits on their document sizes. Valid use cases exist for publishers to generate infinite
RDF documents, which can be streamed to query engines. ery engines with non-streaming or flawed
streaming parsers, can lead to CPU and memory issues. Furthermore, similar issues can occur due to
very long or infinite IRIs or literals inside documents. Other aacks could exist that specifically target
known flaws in RDF parsers that cause CPU or memory issues.
        </p>
        <p>Attacker Data publisher (Carol)
Victim Machine in which Alice’s query engine runs
Impact Unresponsiveness or crashing of Alice’s query engine or machine</p>
      </sec>
    </sec>
    <sec id="sec-20">
      <title>5.8. Document Corruption</title>
      <p>
        Since the Web is not a centrally controlled system, it is possible that documents are incorrectly for‐
maed, either intentional or unintentional. RDF formats typically prescribe a restrictive syntax, which
require parsers to emit an error when it encounters illegal syntax. When an LTQP engine discovers and
parses a large number of RDF documents, possibly in an uncontrolled manner, it is undesired that a
10 / 14
syntax error in just a single RDF document can cause the whole query process to terminate with an er‐
ror. Furthermore, the phenomenon of Link Rot  [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ] can lead to links going dead (HTTP 404) at any
point in time, while finding a link to a URL that produces a 404 response should not always cause the
query engine to terminate.
      </p>
      <sec id="sec-20-1">
        <title>Exploit: publishing an invalid RDF document</title>
        <p>For example, Carol could decide to introduce a syntax error in her profile document, or she could
simply remove it to produce a 404 response. is would could cause Alice’s queries over her friends
from that point on to fail.
5.9. Cross-ery Execution Interaction</p>
        <p>ery engines of all forms typically make use of caching techniques to improve performance of
query execution. LTQP query engines can leverage caching techniques for document retrieval. Within a
single query execution, or across multiple query executions, the documents may be reused, which could
reduce the overall number of HTTP requests. Such forms of caching can lead to vulnerabilities based on
information leaking across different query executions. We therefore make the assumption of
cachingenabled LTQP engines in this vulnerability.</p>
      </sec>
      <sec id="sec-20-2">
        <title>Exploit: timing attack to determine prior knowledge</title>
        <p>
          A first exploit of this vulnerability is an aack that enables Carol to gain knowledge about whether
or not Bob’s profile has been requested before by Alice. We assume that Alice’s engine issues a query
over a document from Carol listing all her pictures. We also assume that Bob’s profile contains a link to
Carol’s profile. If Carol includes a link from her pictures document to Bob’s profile, and Bob’s profile
already links to Carol’s profile, then the query engine could fetch these three documents in sequence
(Carol’s pictures, Bob’s profile, Carol’s profile). Since Carol’s pictures and profile are in control of Carol,
she could perform a timing aack  [
          <xref ref-type="bibr" rid="ref35">35</xref>
          ] to derive how long the Alice’s query engine took to process
Bob’s profile. Since HTTP delays typically form the boleneck in LTQP, Carol could thereby derive if
Bob’s profile was fetched from a cache or not. is would enable Carol to gain knowledge about prior
document lookups, which could for example lead to privacy issues with respect to the user’s interests.
Attacker Data publisher (Carol)
Victim Privacy about Alice’s document usage
Impact Alice’s document usage becomes known to Carol
        </p>
      </sec>
      <sec id="sec-20-3">
        <title>Difficulty Hard</title>
      </sec>
      <sec id="sec-20-4">
        <title>Exploit: unauthenticated cache reuse</title>
        <p>A second exploit assumes the presence of a soware flaw inside Alice’s LTQP query engine that
makes document caches ignore authorization information. is example is also a form of the
Intermediate Result and ery Leakage vulnerability that was explained before, for which we assume
the existence of a hybrid LTQP query engine. If Alice queries a private file containing her passwords
11 / 14
from a server using its authentication key, this can cause this passwords file to be cached. If Carol has a
query endpoint that is being queried by Alice, and Carol is aware of the location of Alice’s passwords,
then she could maliciously introduce a link to Alice’s passwords file. Even if the query was not executed
with Alice’s authentication key, the bug in Alice’s query engine would cause the passwords file to be
fetched in full from the cache, which could cause parts of it to be leaked to Carol’s query endpoint.</p>
      </sec>
    </sec>
    <sec id="sec-21">
      <title>5.10. Document Priority Modification</title>
      <p>
        Different techniques are possible to determine the priority of documents [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ] during query process‐
ing. If queries do not specify a custom ordering, this prioritization will impact the ordering of query re‐
sults. Some of these techniques are purely graph-based, such as PageRank [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], and can therefore suffer
from purely data-driven aacks. is vulnerability involves aacks that can influence the priority of
documents, and thereby maliciously influence what query results come in earlier or later.
      </p>
      <sec id="sec-21-1">
        <title>Exploit: malicious PageRank prioritization of documents</title>
        <p>
          One possible exploit is similar to the aack to modify priorities within crawlers [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. We assume that
Alice issues a query that returns grocery stores in the local area, which is executed via a LTQP query
engine that makes use of PageRank to prioritize documents. Furthermore, we assume a highly-scoring,
but vulnerable API that accepts HTTP GET parameters that can be abused to inject custom URLs inside
the API responses. If Carol aims to increase the ranking of her grocery store within Alice’s query for
beer visibility, then she could exploit this vulnerable API. Concretely, Carol could place links from the
grocery store’s page to this vulnerable API using GET parameters that would cause it to link back to
Carol’s grocery store. Such an aack would lead to a higher PageRank for Carol’s grocery store, and
therefore an earlier handling and result representation of Carol’s grocery store.
        </p>
        <p>Attacker Data publisher (Carol)
Victim Order of Alice’s query results
Impact Carol’s page is ranked higher</p>
      </sec>
      <sec id="sec-21-2">
        <title>Difficulty Medium</title>
      </sec>
    </sec>
    <sec id="sec-22">
      <title>6.  Conclusions</title>
      <p>
        With this prospective analysis, we have illustrated the importance of more security-oriented research
in the domain on LTQP and the general handling of decentralized environments such as Solid [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], espe‐
cially in the presence of data behind authentication. In future work, work is needed to determine miti‐
gation strategies for them, which may be inspired by existing techniques in related domains. Further‐
more, research will be needed to test the impact of these mitigations on implementations, analyze their
performance impact, introduce more performant techniques and algorithms, and introduce and apply
aack models to test their effectiveness. Since our analysis of security vulnerabilities is by no means ex‐
haustive, additional research efforts are needed to uncover and predict potential security vulnerabilities
12 / 14
in LTQP. Such future research—with our work as a first step—is crucial for enabling a decentralized
Web which we can query securely.
      </p>
    </sec>
    <sec id="sec-23">
      <title>Acknowledgements</title>
      <p>Ruben Taelman is a postdoctoral fellow of the Research Foundation – Flanders (FWO) (1274521N).
13 / 14</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Verborgh</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <article-title>Re-decentralizing the Web, for good this time</article-title>
          . In: Seneviratne,
          <string-name>
            <given-names>O.</given-names>
            and
            <surname>Hendler</surname>
          </string-name>
          ,
          <string-name>
            <surname>J</surname>
          </string-name>
          . (eds.)
          <article-title>Linking the World's Information: A Collection of Essays on the Work of Sir Tim Berners-Lee (</article-title>
          <year>2020</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Hartig</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>An Overview on Execution Strategies for Linked Data eries</article-title>
          .
          <source>DatenbankSpektrum</source>
          .
          <volume>13</volume>
          ,
          <fpage>89</fpage>
          -
          <lpage>99</lpage>
          (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Hartig</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bizer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Freytag</surname>
          </string-name>
          , J.-C.:
          <string-name>
            <surname>Executing</surname>
            <given-names>SPARQL</given-names>
          </string-name>
          
          <article-title>eries over the Web of Linked Data</article-title>
          . In: Bernstein,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Karger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.R.</given-names>
            ,
            <surname>Heath</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Feigenbaum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            ,
            <surname>Maynard</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          , Moa, E., and irunarayan, K. (eds.)
          <source>Proceedings of the 8th International Semantic Web Conference</source>
          . pp.
          <fpage>293</fpage>
          -
          <lpage>309</lpage>
          (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Halfond</surname>
            ,
            <given-names>W.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Viegas</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Orso</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <article-title>others: A classification of SQL-injection aacks and countermeasures</article-title>
          .
          <source>In: Proceedings of the IEEE international symposium on secure soware engineering</source>
          . pp.
          <fpage>13</fpage>
          -
          <lpage>15</lpage>
          . IEEE (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Orduña</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Almeida</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aguilera</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Laiseca</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>López-de-Ipiña</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Goiri</surname>
            ,
            <given-names>A.G.</given-names>
          </string-name>
          :
          <article-title>Identifying security issues in the semantic web: Injection aacks in the semantic query languages</article-title>
          . Actas de las {VI}
          <article-title>Jornadas Cientifico-Tecnicas en Servicios Web y {SOA}</article-title>
          .
          <volume>51</volume>
          ,
          <fpage>4529</fpage>
          -
          <lpage>4542</lpage>
          (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Taelman</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , Van Herwegen,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Vander</surname>
          </string-name>
          <string-name>
            <surname>Sande</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Verborgh</surname>
          </string-name>
          , R.:
          <article-title>Comunica: a Modular SPARQL ery Engine for the Web</article-title>
          .
          <source>In: Proceedings of the 17th International Semantic Web Conference</source>
          (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Berners-Lee</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Linked Data</article-title>
          . hps://www.w3.org/DesignIssues/LinkedData.html (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Hartig</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>SQUIN: a Traversal Based ery Execution System for the Web of Linked Data</article-title>
          .
          <source>In: Proceedings of the ACM SIGMOD International Conference on Management of Data</source>
          . pp.
          <fpage>1081</fpage>
          -
          <lpage>1084</lpage>
          . ACM (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Hartig</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>SPARQL for a Web of Linked Data: Semantics and Computability</article-title>
          .
          <source>In: Proceedings of the 9th international conference on e Semantic Web: research and applications</source>
          . pp.
          <fpage>8</fpage>
          -
          <lpage>23</lpage>
          . , Berlin, Heidelberg (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Verborgh</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taelman</surname>
          </string-name>
          , R.:
          <source>Guided Link-Traversal-Based ery Processing</source>
          . Presented at the May (
          <year>2020</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Umbrich</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hose</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karnstedt</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harth</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Polleres</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Comparing data summaries for processing live queries over linked data</article-title>
          .
          <source>World Wide Web</source>
          .
          <volume>14</volume>
          ,
          <fpage>495</fpage>
          -
          <lpage>544</lpage>
          (
          <year>2011</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          , Zhang, S.:
          <article-title>Exploring injection prevention technologies for security-aware distributed collaborative manufacturing on the Semantic Web</article-title>
          . e
          <source>International Journal of Advanced Manufacturing Technology</source>
          .
          <volume>54</volume>
          ,
          <fpage>1167</fpage>
          -
          <lpage>1177</lpage>
          (
          <year>2011</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Asghar</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Anwar</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Latif</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>A deliberately insecure RDF-based Semantic Web application framework for teaching SPARQL/SPARUL injection aacks and defense mechanisms</article-title>
          .
          <source>computers &amp; security. 58</source>
          ,
          <fpage>63</fpage>
          -
          <lpage>82</lpage>
          (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Kirrane</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mileo</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Decker</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Access control and the resource description framework: A survey</article-title>
          .
          <source>Semantic Web</source>
          .
          <volume>8</volume>
          ,
          <fpage>311</fpage>
          -
          <lpage>352</lpage>
          (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Shkapenyuk</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Suel</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Design and implementation of a high-performance distributed web crawler</article-title>
          .
          <source>In: Proceedings 18th International Conference on Data Engineering</source>
          . pp.
          <fpage>357</fpage>
          -
          <lpage>368</lpage>
          . IEEE (
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Novak</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>A survey of focused web crawling algorithms</article-title>
          .
          <source>Proceedings of SIKDD. 5558</source>
          ,
          <fpage>55</fpage>
          -
          <lpage>58</lpage>
          (
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Zarras</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maggi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Hiding Behind the Shoulders of Giants: Abusing Crawlers for Indirect Web Aacks</article-title>
          .
          <source>In: 2017 15th Annual Conference on Privacy, Security and Trust (PST)</source>
          . pp.
          <fpage>355</fpage>
          -
          <lpage>35509</lpage>
          . IEEE (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Page</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brin</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Motwani</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Winograd</surname>
          </string-name>
          , T.:
          <article-title>e PageRank citation ranking: Bringing order to the web</article-title>
          .
          <source>Stanford InfoLab</source>
          (
          <year>1999</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <article-title>Crawler traps: how to identify and avoid them</article-title>
          . hps:// www.contentkingapp.com/academy/crawler-traps/ (
          <year>2020</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Heydon</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Najork</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Mercator: A scalable, extensible web crawler</article-title>
          .
          <source>World Wide Web. 2</source>
          ,
          <fpage>219</fpage>
          -
          <lpage>229</lpage>
          (
          <year>1999</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>David</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Delong</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Filiol</surname>
          </string-name>
          , E.:
          <article-title>Detection of crawler traps: formalization and implementation -defeating protection on internet and on the TOR network</article-title>
          .
          <source>Journal of Computer Virology and Hacking Techniques</source>
          .
          <fpage>1</fpage>
          -
          <lpage>14</lpage>
          (
          <year>2021</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Šilić</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Krolo</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Delač</surname>
          </string-name>
          , G.:
          <article-title>Security vulnerabilities in modern web browser architecture</article-title>
          .
          <source>In: e 33rd International Convention MIPRO</source>
          . pp.
          <fpage>1240</fpage>
          -
          <lpage>1245</lpage>
          (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Barth</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jackson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , Mitchell,
          <string-name>
            <surname>J.C.</surname>
          </string-name>
          :
          <article-title>Robust defenses for cross-site request forgery</article-title>
          .
          <source>In: Proceedings of the 15th ACM conference on Computer and communications security</source>
          . pp.
          <fpage>75</fpage>
          -
          <lpage>88</lpage>
          (
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>Alur</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Crupi</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Malks</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Core J2EE paerns: best practices and design strategies</article-title>
          .
          <source>Prentice Hall Professional</source>
          (
          <year>2003</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>Seacord</surname>
            ,
            <given-names>R.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Householder</surname>
            ,
            <given-names>A.D.:</given-names>
          </string-name>
          <article-title>A structured approach to classifying security vulnerabilities</article-title>
          .
          <source>CARNEGIE-MELLON UNIV PITTSBURGH PA SOFTWARE ENGINEERING INST</source>
          (
          <year>2005</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>Fithen</surname>
            ,
            <given-names>W.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hernan</surname>
            ,
            <given-names>S.V.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>O</given-names>
            <surname>'Rourke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.F.</given-names>
            ,
            <surname>Shinberg</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.A.</surname>
          </string-name>
          :
          <article-title>Formal modeling of vulnerability</article-title>
          .
          <source>Bell Labs technical journal. 8</source>
          ,
          <fpage>173</fpage>
          -
          <lpage>186</lpage>
          (
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <surname>Drummond</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shearer</surname>
          </string-name>
          , R.: e open world assumption.
          <source>In: eSI Workshop: e Closed World of Databases meets the Open World of the Semantic Web</source>
          (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>Umbrich</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hogan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Polleres</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Decker</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Link traversal querying for a diverse web of data</article-title>
          .
          <source>Semantic Web</source>
          .
          <volume>6</volume>
          ,
          <fpage>585</fpage>
          -
          <lpage>624</lpage>
          (
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <surname>WebID-OIDC Authentication</surname>
          </string-name>
          <article-title>Spec</article-title>
          . Solid, hps://github.com/solid/webid-oidc-spec (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <article-title>Google: Understand the JavaScript SEO basics</article-title>
          . hps:// developers.google.com/search/docs/guides/javascript-seo-basics (
          <year>2021</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <surname>Vrandecıc</surname>
            ́ Denny, Krötzsch,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rudolph</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lösch</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Leveraging non-lexical knowledge for the linked open data web. 5th Review of April Fool's day Transactions</article-title>
          .
          <volume>18</volume>
          -
          <fpage>27</fpage>
          (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <surname>Prud'hommeaux</surname>
          </string-name>
          , E.,
          <string-name>
            <surname>Carothers</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Machina</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>JSON-LD 1.1 Processing Algorithms</article-title>
          and API. W3C, hps://www.w3.org/TR/turtle/ (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <surname>Taelman</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <source>Streaming JSON-LD. W3C</source>
          , hps://www.w3.org/TR/json-ld11-streaming/ (
          <year>2020</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34] Feerly,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Manasse</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Najork</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Wiener</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.L.</surname>
          </string-name>
          :
          <article-title>A large-scale study of the evolution of Web pages</article-title>
          .
          <source>Soware: Practice and Experience</source>
          .
          <volume>34</volume>
          ,
          <fpage>213</fpage>
          -
          <lpage>237</lpage>
          (
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <surname>Dhem</surname>
            ,
            <given-names>J.-F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Koeune</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leroux</surname>
          </string-name>
          , P.-A.,
          <string-name>
            <surname>Mestre</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , isquater, J.-J.,
          <string-name>
            <surname>Willems</surname>
          </string-name>
          , J.-L.:
          <article-title>A practical implementation of the timing aack</article-title>
          .
          <source>In: International Conference on Smart Card Research and Advanced Applications</source>
          . pp.
          <fpage>167</fpage>
          -
          <lpage>182</lpage>
          (
          <year>1998</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <surname>Hartig</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Özsu</surname>
          </string-name>
          , M.T.:
          <article-title>Walking Without a Map: Ranking-Based Traversal for erying Linked Data</article-title>
          .
          <source>In: Proceedings of the 13th International Semantic Web Conference</source>
          . pp.
          <fpage>305</fpage>
          -
          <lpage>324</lpage>
          (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>